rubyでexec.rbを作成します。
chefのリポジトリが3つあるとします。repo_a, repo_b, repo_cとします。
repositories/内にこの三つのchefリポジトリがあります。
repositories/exec.rbも存在します。
exec.rbには各リポジトリのknife solo cook hostが記述されており、それぞれメソッドとして実行できます。
def exec_a line = "knife solo cook host_a" line.chomp! cmd, *args = line.split(/\s+/) pid = Process.fork do Process.exec [cmd, cmd], *args end Process.waitall end def exec_b .... .... end def exec_c .... .... end
例えばこのexec.rbにexec_aメソッドを実行する記述をして、exec.rbを実行した場合、repo_aのディレクトリで実行しないとknife solo cookコマンドが通らないと思います。
コマンドライン上で、カレントディレクトリが、repositories/の場合は cd repo_a && knife solo cook hots_aとすることで実行できますが、ファイル上では不可です。
このような場合どのようにして、ディレクトリを変更した上でknife solo cookコマンドを実行するのでしょうか?ディレクトリを変更し、その状態でコマンドを実行するという手法が知りたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。