Ansible在启动node.js服务器时挂起

Jac*_*les 15 node.js ansible

我想在ansible playbook中启动我的node.js应用程序.现在,最终的指令看起来像这样:

  - name: start node server
    shell: chdir=${app_path} npm start&
Run Code Online (Sandbox Code Playgroud)

问题是ansible永远不会从此返回.我怎样才能继续?

gee*_*guy 26

Forever似乎是启动和守护Node.js应用程序的最简单,最简单的方法.目前,永远没有Ansible模块,但您仍然可以使用以下播放器永久安装并运行您的应用程序:

- name: "Install forever (to run Node.js app)."
  npm: name=forever global=yes state=present

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

- name: "Start example Node.js app."
  command: forever start /path/to/app.js
  when: "forever_list.stdout.find('/path/to/app.js') == -1"
Run Code Online (Sandbox Code Playgroud)

这是完全幂等的,对我来说很有用.你可以forever为Ansible编写一个小模块来为你做这些事情(比如service模块),但现在这个有用了.

我有一个完整的例子,说明如何在Server Check.in的博客上使用Forever和Ansible启动Node.js应用程序.