chef implantar serviço de início e reiniciar serviço em sequência

2

Chef pare e inicie o serviço em sequência e gostaria de pergunte procedimento diferente.

Passo 1: bootstrap do framework para o serviço jboss

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

Etapa 2: inicie o jboss

service "jboss" do
    action :start
end

Etapa 3: instalar o aplicativo

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

entre os passos 2 e 3, a instalação ant retorna um erro porque o jboss ainda não foi iniciado. mas bem sucedido na segunda corrida. obviamente, o passo 3 não sabe se o jboss já começou.

como fazer isso no chef?

    
por Ryan 18.10.2013 / 08:35

2 respostas

1

Tropeçou nisso por engano, mas parece um problema parecido que tive com o rundeck ... o seu serviço está começando, mas não iniciado?

Tente testar isso

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

Para o rundeck, foi a reinicialização com a qual tive problemas e usei o curl para investigar até que tudo estivesse funcionando.

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

'' '

    
por 29.05.2014 / 02:40
0

Use inscrição de recursos para manter a ordem de execução.

Use retries para garantir que a instalação do aplicativo funcione e você pode executar o recurso bash[install application] no final da execução do chef via subscribes :run, "service[jboss]", :delayed

bash "install application" do
  code <<-EOF
  ant install
  EOF
  action :nothing
  retries 3
  subscribes :run, "service[jboss]", :delayed 
end
    
por 19.10.2013 / 17:06