【发布时间】:2013-08-19 09:01:35
【问题描述】:
我的安装文件是这样的:
...
cd /home/work/package/dea_ng
...
bundle install
export PATH=$PATH:/usr/local/go/bin
bundle exec rake dir_server:install
我很确定最后一个命令可以在我的客户端机器上成功运行,但是 puppet 不断报告“返回 1 而不是 [0] 之一”错误。
所以,这里是安装清单:
class dea_ng::install {
exec { "/bin/bash /home/work/install/dea_ng_install.sh":
path=>'/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin',
cwd =>'/home/work/install',
logoutput => false,
require =>Class["dea_ng::dea_ngfile"],
before => Class["dea_ng::service"],
}
}
这个问题也发生在我的启动命令上,它也使用了 bundle exec:在 puppet 完成 dea_ng::install 并运行 dea_ng::service 之后,除非我在客户端机器上手动执行,否则下面的命令不起作用。
bundle exec rake dir_server:run[config/dea.yml] &
我对此感到非常困惑,在我的情况下,puppet 似乎无法很好地处理 bundle exec。我在这里错过了一些环境配置吗?
--debug 的输出似乎没有帮助:
Debug: Executing '/bin/bash /home/work/install/dea_ng_install.sh'
Error: /bin/bash /home/work/install/dea_ng_install.sh returned 1 instead of one of [0]
Error: /Stage[main]/Dea_ng::Install/Exec[/bin/bash /home/work/install/dea_ng_install.sh]/returns: change from notrun to 0 failed: /bin/bash /home/work/install/dea_ng_install.sh returned 1 instead of one of [0]
如果我删除 bundle exec 行,shell 会成功。
【问题讨论】:
-
您能否以
--debug模式运行puppet 并在returned 1错误之前发布几位。 -
您可以在脚本中添加打印语句或其他内容,以查看每个执行环境的不同之处吗?
-
@Shakedown 您能否给我一些提示,说明在这种情况下,木偶世界和现实世界之间可能有什么不同?我实际上不知道从哪里开始调试。
-
我真的只是从臀部拍摄,但是......也许当前的环境 (
env) 会揭示一些东西? -
令人兴奋,我通过添加 output => true 得到了错误:“找不到 HOME 环境 - 扩展 `~'”。如何在 puppet 中解决这个问题?
标签: puppet