Запуск Node.js приложения

Теперь мы будем использовать forever(который мы установили ранее) для запуска приложения.

- name: Check list of running Node.js apps.
  command: forever list
  register: forever_list
  changed_when: false

- name: Start example Node.js app.
  command: "forever start {{ node_apps_location }}/app/app.js"
  when: "forever_list.stdout.find('{{ node_apps_location }}/app/app.js') == -1"

В первой инструкции мы делаем следующее:

  1. register создает новую переменную forever_list, которая будет использована в следующей инструкции, чтобы определить когда следует запустить инструкции. register хранит выходные данные (stdout, stderr) заданной команды в переданной ей переменной.
  2. changed_when сообщает Ansible, когда инструкция приводит к изменению состояния сервера. В этом случае мы знаем, что команда forever list никогда не внесет изменения на сервер, так что мы просто скажем false — сервер никогда не изменит свое состояние при выполнении команды.

Вторая инструкция фактически запускает приложение, используя Forever. Мы также могли бы запустить приложение с помощью вызова node {{ node_apps_location }}/app/app.js, но мы не смогли бы полностью контролировать процесс, и нам также нужно было бы использовать nohup и &, чтобы избежать зависания playbook.

results matching ""

    No results matching ""