1
resposta

Ansible nao termina a execucao dele

Eu consegui fazer todos os passos, mas tentei no final, rodar pelo proprio script do Ansible os comandos de activate do venv e iniciar o servidor com o Django, ele funciona, porem no terminal, o ansible nao termina essa ultima task:

Script do Playbook:

  • name: iniciando venv shell: '. /home/ubuntu/tcc/venv/bin/activate; python /home/ubuntu/tcc/manage.py runserver 0.0.0.0:8000'

Resultado do Terminal: TASK [iniciando venv] *******************************************************************

Existe algum modo de terminar a task do ansible nesse caso? se eu acesso a pagina do servidor, ele deu certo e mostra a tela do Django como deveria, so estou tentando automatizar todo o processo (ja que da forma como esta, preciso fechar o terminal em que estou rodando o comando do ansible e abrir outro se for rodar novamente)

1 resposta

Oii, Bruno! Tudo bem contigo?

Quando você executa o comando runserver, ele inicia um servidor de desenvolvimento que não termina por si só, ele continua em execução até que seja explicitamente parado, é por isso que a tarefa do Ansible parece presa ali.

Uma solução possível seria rodar o servidor Django em background. Você pode fazer isso adicionando um & no final do comando. Então, o comando ficaria assim:

- name: iniciando venv
  shell: '. /home/ubuntu/tcc/venv/bin/activate; python /home/ubuntu/tcc/manage.py runserver 0.0.0.0:8000 &'

O & no final do comando faz com que o processo seja executado em background, liberando o terminal para outras tarefas.

No entanto, é importante notar que o servidor de desenvolvimento Django foi projetado para ser usado apenas para desenvolvimento. Para um ambiente de produção, é recomendado usar um servidor WSGI completo.

Se a dúvida persistir, estamos aqui.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.