Não é possível instalar serviços PM2 via Ansible em uma instância do Ubuntu EC2

5

Estou usando o Ansible para criar um serviço pm2 em uma instância do EC2 / Ubuntu. Abaixo está o roteiro. Quando eu o executo, o PM2 é instalado e o serviço é ativado. Quando eu executo a lista do pm2, eu não vejo o serviço, mas posso fazê-lo (ps aux | grep node) e ver se ele está em execução. Também parece que uma cópia de sombra do pm2 está sendo executada e carregando o aplicativo, mas parece que não consigo controlá-lo.

- hosts: comm
  sudo: yes
  tasks:
    - npm: name=pm2 global=yes
    - name: configure pm2 to restart on startup
      shell: pm2 startup ubuntu >& /dev/null chdir=~/ executable=/bin/bash
      sudo: yes
      sudo_user: root
    - command: sudo env PATH=$PATH:/usr/bin pm2 startup ubuntu -u ubuntu
      sudo: yes
    - command: /usr/bin/pm2 save
    - command: /usr/bin/pm2 start /home/ubuntu/something/app.js --name something
    
por Helloworld 06.04.2015 / 21:56

1 resposta

1

Este manual não é idempotente, a tarefa shell será executada toda vez que o manual for executado, você precisará fornecer um creates argumento para essa tarefa.

Na versão atual da PM2:

var scriptFile = '/etc/init.d/pm2-init.sh',
  script = cst.UBUNTU_STARTUP_SCRIPT;

Além disso, o uso de sudo é redundante, como já é especificado globalmente acima, e o padrão é sudo to root , então também é redundante.

Além disso, quando houver um script init para o serviço, será melhor usar o service módulo para gerenciá-lo.

    
por 06.04.2015 / 23:10