0

我在食谱里有这个方法

script "bashbashed" do
  interpreter "bash"
  user "root"

  code <<-EOH
  cd /my/path
  ant clean
  ant build
  ant deploy
  EOH
end

返回

localhost STDERR: /tmp/chef-script20131004-5434-823zxp: line 1: cd: tarball: No such file or directory
localhost /tmp/chef-script20131004-5434-823zxp: line 4: ant: command not found
localhost /tmp/chef-script20131004-5434-823zxp: line 5: ant: command not found
localhost /tmp/chef-script20131004-5434-823zxp: line 6: ant: command not found

登录来宾并执行 ant -version。ant 安装在来宾中。我在这里还缺少什么吗?

4

2 回答 2

0

错误消息表明 2 个问题:

  1. 路径/my/path不存在。
  2. 它不包含您的 java ant 安装路径$PATH

更新版本:

script "bashbashed" do
  interpreter "bash"
  user "root"
  cwd "/my/path"   # make sure this path exists
  path "#{ENV['PATH']}:/opt/ant/bin"  # customize to the location of your ant command

  code <<-EOH
  ant clean build deploy
  EOH
end
于 2013-10-04T13:20:28.847 回答
0

您的问题是“/etc/profile.d/*”下提供的环境文件不是由 root 用户提供的,这可以解释为什么您的 bash 脚本(以 root 身份运行)没有在其路径中配置 ant。

也许一个简单的解决方案是将构建作为普通用户帐户运行?

于 2013-10-05T10:24:38.177 回答