为什么我的木偶不能处理捆绑执行?

时间:2013-08-19 09:01:35

标签: puppet

我的安装文件是这样的:

...
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] &

我真的对此感到困惑,似乎木偶在我的情况下无法处理捆绑执行。我在这里错过了一些env配置吗?

--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就会成功。

1 个答案:

答案 0 :(得分:4)

通过添加output =>找到真正的错误真:

couldn't find HOME environment -- expanding `~'

这是Puppet3中的一个已知问题,请参阅

  

https://groups.google.com/forum/#!topic/puppet-users/5sk9mJqe4Z0

所以添加HOME env解决了这个问题:

environment => “HOME = /根”