0
を開始し、リソースを待ちます。問題は、grafana_datasourceを実行しようとするとまだgrafanaが起動せず、クラッシュするということです。シェフは、私は以下のレシピを実行してい
サービスが完全に開始された後、grafanaサービスを購読してgrafana_datasourceコードを実行するにはどうしたらいいですか?
を開始し、リソースを待ちます。問題は、grafana_datasourceを実行しようとするとまだgrafanaが起動せず、クラッシュするということです。シェフは、私は以下のレシピを実行してい
サービスが完全に開始された後、grafanaサービスを購読してgrafana_datasourceコードを実行するにはどうしたらいいですか?
シェフには特に何もありません。 Tensibaiが述べたようにgeneric retries
を使用するか、サービスが起動して応答するまで待つリソースruby_block
を使用できます。ほとんどのサービス層(Upstart、systemdなど)は非同期なので、シェフのservice
リソース(および関連するもの)はstart/restartコマンドの送信時にブロックされますが、実際にサービスが起動して実行されるわけではありません。これは通常、次の形式をとります:
ruby_block 'wait_until_up' do
block do
while true
if try_to_connect()
break
end
sleep 10
end
end
end
などです。
[ここ](https://docs.chef.io/resource_common.html#properties)に記載されているように、grafana_datasourceに 'retries 3'と' retry_delay 10'を追加するだけです。 – Tensibai