Chef déploie le service de démarrage et redémarre le service en séquence

Chef s'arrête et démarre le service en séquence et souhaite poser une autre procédure.

Étape 1: cadre bootstrap to jboss service

bash "bootstrap application" do code <<-EOF ant bootstrap EOF end 

Étape 2: puis lancez jboss

 service "jboss" do action :start end 

Étape 3: installation de l'application

 bash "install application" do code <<-EOF ant install EOF end 

entre les étapes 2 et 3, l'erreur d'import d'une fourmette d'origine provoque une erreur car jboss n'est pas encore lancé. mais réussit à la 2ème course. Évidemment, l'étape 3 ne sait pas si le jboss a déjà commencé.

comment faire sur le chef?

Utilisez l'abonnement de ressources pour maintenir l'ordre d'exécution.

Utilisez les resortinges pour vous assurer que l'installation de l'application fonctionne, et vous pouvez exécuter resource bash[install application] à la fin de l'exécution du chef via les subscribes :run, "service[jboss]", :delayed

 bash "install application" do code <<-EOF ant install EOF action :nothing resortinges 3 subscribes :run, "service[jboss]", :delayed end 

Trébuché sur cette erreur, mais ça ressemble à un problème similaire que j'ai eu avec rundeck … est-ce que votre service démarre mais n'est pas démarré?

Essayez de tester cela

 service "jboss" do start_command 'service jboss start && sleep 30' action :start end 

Pour rundeck, il s'agissait du redémarrage avec lequel j'avais des problèmes et j'ai utilisé curl pour le sonder jusqu'à ce qu'il soit fini.

 service 'rundeckd' do restart_command 'service rundeckd restart && RETRIES=0 && until curl localhost:4440 || [ $RETRIES -eq 30 ]; do (( RETRIES++ )); sleep 5; done' action :start end 

“ `