15

ansible Playbook で node.js アプリを開始したいと考えています。現在、最終的なディレクティブは次のようになっています。

  - name: start node server
    shell: chdir=${app_path} npm start&

問題は、そこから ansible が戻らないことです。どうしたら続けられるでしょうか?

4

4 に答える 4

4

Forever を使用することは、nodejs アプリをバックグラウンドで実行するための最良のソリューションです。@geerlingguy のソリューションは、アプリを 1 回実行する場合には優れていますが、アプリを再デプロイする場合は、最初にサーバーを停止してから再度起動する必要があります。

- name: Get app process id
  shell: "ps aux | grep app.js | grep -v grep | awk '{print $2}'"
  register: process_id

- name: Stop app process
  shell: kill -9 {{ item }}
  with_items: process_id.stdout_lines
  ignore_errors: True  # Ignore error when no process running

- name: Start application
  command: forever start path/to/app.js
  environment:
    NODE_ENV: production  # Use this if you want to deploy the app in production
于 2014-06-07T08:32:50.843 に答える
1

nohup を使用してみてください:

- name: start node server
  shell: chdir=${app_path} nohup npm start &

ただし、アプリが終了した場合に自動的に再起動するように、foreverを使用することをお勧めします。

于 2014-01-23T20:57:59.960 に答える