私は2つのことを達成したいと思います:1)無意味なpidファイルをクリーンアップして(elasticsearchが実行されていない場合)、それを開始します。2)続行する前にESが起動したことを確認します。
Chefがすぐに提供するものとRubyが許可するものの間で、それを実現するための構文のような擬似コードしか理解できませんが、実行されないので、本物を書くためのヘルプ/アドバイスが必要です。
(1)の擬似コード:
bash "start it up" do
user "root"
only_if { # pretty sure this syntax is all incorrect, any ideas to make it happen?
(sudo service elasticsearch status).match(/^elasticsearch not running/)
}
code <<-EOS
sudo rm -rf /usr/local/var/run/elasticsearch/*.pid
sudo service elasticsearch restart
EOS
end
(2)の擬似コード:
bash "wait for it to start up" do
user "root"
only_if { # pretty sure this syntax is all incorrect, any ideas to make it happen?
(sudo service elasticsearch status).match(/^elasticsearch running with PID/)
}
retries 20
retry_delay 5
code <<-EOS
echo "I can now go on with my life..."
EOS
end