当我尝试使用守护进程启动npm时,Ansible命令不起作用

时间:2016-05-21 10:31:14

标签: node.js npm ansible devops

我有以下命令,当我使用ansible

运行它时它不起作用
- hosts: localhost
  connection: local
  remote_user: ubuntu
  sudo: yes
  sudo_user: webuser
  tasks:
      - name: Start web ui
        command: /usr/bin/daemon --name=web_ui --output=log.txt --chdir=/web --command="/usr/share/node/bin/npm run start"

运行ansible

root@ip-172:~# ansible-playbook -i "localhost," -c local ansible-local/setup_feee__.yml

PLAY [localhost] ************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [localhost]

TASK: [Start web ui] ********************************************************** 
changed: [localhost]

PLAY RECAP ******************************************************************** 
localhost                  : ok=2    changed=1    unreachable=0    failed=0   

root@ip-172:~# lsof -i | grep 3000
root@ip-172:~# 

然后我手动执行它

webuser@ip-172:~$ /usr/bin/daemon --name=web_ui --output=log.txt --chdir=/web --command="/usr/share/node/bin/npm run start"

webuser@ip-172:~$ lsof -i | grep 3000
node    19169 webuser   11u  IPv4 127637      0t0  TCP localhost:3000 (LISTEN)

我的ansible命令有什么问题?

1 个答案:

答案 0 :(得分:0)

我发现npm run start/usr/share/node/bin/npm start之间存在差异。

如果npm不在根PATH中,则无效。 指定npm的完整路径,或将其位置添加到PATH

是否要致电npm run startnpm start

此外,可能还有一个日志文件(甚至是ansible的输出),表示找不到npm。一直在寻找那些。