【问题标题】:Running Forever in Ansible Provision Never Fires or Always Hangs在 Ansible Provision 中永远运行永远不会触发或永远挂起
【发布时间】:2015-02-06 22:23:54
【问题描述】:

尝试在 Ansible 节点上启动 forever 进程时,我遇到了 Anisble 挂起的问题。我有一个非常简单的 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 只是动手,可能会运行永远的进程(我想永远),但不会将 VM 启动到我可以与之交互的地方。

我在网上基本上参考了两点; onlysources我能找到。

【问题讨论】:

  • 您是否尝试在虚拟机中手动运行它?只是想知道这是ansible 还是forever 本身的问题
  • 你的问题错过了变量forever_list.stdout的输出有用
  • 我会输入- debug: var= forever_list.stdout 来检查

标签: node.js ansible forever


【解决方案1】:

如 cmets 中所述,您的问题中需要包含可变内容,以便任何人提供正确答案,但要克服这个问题,我建议您可以这样做:

    - name: "Check list of Node.js apps running."
      command: /usr/bin/forever list|grep '/vagrant/server.js'|wc -l
      register: forever_list
      changed_when: false

    - name: "Start example Node.js app."
      command: /usr/bin/forever start /vagrant/server.js
      when: forever_list.stdout == "0"

如果 ansible 已经在运行,它应该会阻止它启动 JS 应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-15
    • 2021-08-05
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多