Eu quero configurar uma configuração do Vagrant para criar e iniciar uma VM guest do Ubuntu que irá lançar um serviço supervisord
dentro da VM após Vagrant up
. Eu gostaria que isso funcionasse nos hosts Windows, Mac e Linux.
Eu tenho um arquivo supervisord.conf
que copio para a VM durante o provisionamento (copiando primeiro para o espaço do usuário e depois copiando para /etc/supervisor/
como em esta resposta ). Este arquivo de configuração inclui essas linhas para servir uma interface GUI na porta 9001 (esta porta é encaminhada para o host):
[inet_http_server]
port=9001
No entanto, se eu emitir um comando no script de provisionamento do Vagrant como service supervisor start
, essa configuração não será corretamente selecionada. Eu posso ssh na VM e verificar se o serviço de supervisor está em execução, mas a GUI não está disponível na porta 9001. Se eu reiniciar o serviço usando ssh, a GUI ficará disponível após a reinicialização.
A reinicialização do serviço faz com que ele escolha minha configuração, o que me faz pensar que a configuração não estava disponível de alguma forma quando o serviço foi iniciado pela primeira vez.
A resposta parece resolver um problema similar. Então eu tentei também copiar um arquivo para /etc/init/supervisor.conf
:
# start supervisord on vagrant mounted
start on vagrant-mounted
exec service supervisor restart
Isso faria com que o upstart reinicie o serviço quando receber o evento vagrant-mounted
. No entanto, mesmo com isso, o supervisor não parece ter iniciado corretamente.
Eu testei este script inicial emitindo sudo initctl emit vagrant-mounted
e observei o serviço de supervisor reiniciar, e a GUI ficou disponível no 9001.
Isso me faz pensar que o evento vagrant-mounted
provavelmente ocorreu antes da execução do script de provisionamento.
Alguém sabe se há algum outro evento em que eu possa predicar meus scripts iniciantes? Algo que é emitido quando o provisionamento vagante é concluído?
Além disso, existe alguma maneira melhor ou canônica de lançar um serviço em uma VM vagante? Isso tudo parece que eu abaixei uma toca de coelho e perdi algo realmente óbvio.