Не может установить сервисы PM2 через Ansible на экземпляре Ubuntu EC2

Я использую Ansible для создания pm2 сервиса на EC2 / экземпляр Ubuntu. Ниже сценарий. Когда я выполняю его, PM2 установлен, и сервису включают. Когда я выполняю список pm2, я не делаю видения сервиса, но я могу grep это (PS aux | grep узел) и видеть, что это работает. Также кажется, что теневая копия pm2 запускает и загружает приложение, но я, может казаться, не управляю им.

- 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
5
задан 6 April 2015 в 23:01
1 ответ

Этот playbook не идемпотентен, задача оболочки будет запускаться каждый раз, когда playbook запускается, вам нужно предоставить аргумент created для эта задача.

В текущей версии PM2:

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

Кроме того, использование sudo является избыточным, поскольку оно уже глобально определено выше, и по умолчанию sudo в root , так что это тоже избыточно.

Кроме того, если для службы существует сценарий init , было бы лучше использовать service модуль для управления им.

1
ответ дан 3 December 2019 в 02:02

Теги

Похожие вопросы