Я столкнулся с проблемой зависания Anisble при попытке запустить процесс forever
на узле Ansible. У меня есть очень простой сервер API, который я создаю в vagrant и обеспечиваю Ansible следующим образом:
---
- hosts: all
sudo: yes
roles:
- Stouts.nodejs
- Stouts.mongodb
tasks:
- name: Install Make Dependencies
apt: name={{ item }} state=present
with_items:
- gcc
- make
- build-essential
- name: Run NPM Update
shell: /usr/bin/npm update
- name: Create MongoDB Database Folder
shell: /bin/mkdir -p /data/db
notify:
- mongodb restart
- name: Generate Dummy Data
command: /usr/bin/node /vagrant/dataGen.js
- name: "Install forever (to run Node.js app)."
npm: name=forever global=yes state=latest
- name: "Check list of Node.js apps running."
command: /usr/bin/forever list
register: forever_list
changed_when: false
- name: "Start example Node.js app."
command: /usr/bin/forever start /vagrant/server.js
when: "forever_list.stdout.find('/vagrant/server.js') == -1"
Но даже несмотря на то, что Ansible ведет себя так, как будто все в порядке, процесс навсегда не запускается. Когда я изменяю несколько строк, чтобы удалить оператор when:
и принудительно запустить его, Ansible просто вручает, возможно, запуская процесс навсегда (я полагаю, навсегда), но не запуская виртуальную машину, где я могу с ней взаимодействовать.
Я сослался в основном на две точки в Интернете; только источники, которые я могу найти.
ansible
или в самомforever
- person Mat   schedule 07.01.2018forever_list.stdout
, чтобы быть полезным - person Baptiste Mille-Mathias   schedule 18.07.2018- debug: var= forever_list.stdout
для проверки - person Ardhi   schedule 26.05.2019