gpt4 book ai didi

ruby - Ansible 无法运行 npm 或 rake 命令

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:24 24 4
gpt4 key购买 nike

设置我的 VM 时,我想让 playbook 运行数据库迁移以及一些 npm 命令。这是代码片段:

- name: Run DB Migration
shell: rake db:migrate
args:
chdir: /opt/site
sudo: no

- name: Install bower and grunt
command: "npm install -g bower grunt-cli"
args:
chdir: /opt/site
sudo: no

- name: Install bower packages
command: "bower install"
args:
chdir: /opt/site
sudo: no

- name: Install npm packages
command: "npm install"
args:
chdir: /opt/site
sudo: no

npm 东西的错误说:

TASK: [site | Install bower and grunt] ******************************
failed: [default] => {"cmd": "npm install -g bower grunt-cli", "failed": true, "item": "", "rc": 2}
msg: [Errno 2] No such file or directory

rake 的错误是:

TASK: [salemarked-api | Run DB Migration] *************************************
failed: [default] => {"changed": true, "cmd": " rake db:migrate ", "delta": "0:00:00.002664", "end": "2015-01-01 00:40:03.915189", "item": "", "rc": 127, "start": "2015-01-01 00:40:03.912525"}
stderr: /bin/bash: rake: command not found

我已经尝试将 executable:/bin/bash 添加到 rake 命令,但这也没有用。

当我通过 ssh 进入虚拟机时,我能够毫无问题地运行这些命令。

非常感谢任何帮助。

最佳答案

手动运行 which rake 并使用完整路径。粗略地说,您在运行时没有 PATH 环境变量。这是一个例子,尽管我假设了一条特定的路径。

- name: Install bower and grunt
command: "/usr/bin/npm install -g bower grunt-cli"
args:
chdir: /opt/site
sudo: no

此外,shellcommand 用法通常是一种反模式。在这种情况下,您最好使用 npm module替换两个 command 调用。另请注意,您可以删除 sudo: no,这是隐含的。

这是一个改进的例子。

- name: install global node packages
npm: name={{item}} path=/opt/site global=yes
with_items:
- bower
- grunt-cli

关于ruby - Ansible 无法运行 npm 或 rake 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27735390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com