2017-09-29 1 views
0

を開始し、リソースを待ちます。問題は、grafana_datasourceを実行しようとするとまだgrafanaが起動せず、クラッシュするということです。シェフは、私は以下のレシピを実行してい

サービスが完全に開始された後、grafanaサービスを購読してgrafana_datasourceコードを実行するにはどうしたらいいですか?

+0

[ここ](https://docs.chef.io/resource_common.html#properties)に記載されているように、grafana_datasourceに 'retries 3'と' retry_delay 10'を追加するだけです。 – Tensibai

答えて

0

シェフには特に何もありません。 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 

などです。

関連する問題