>我在食谱中得到了这个方法
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 版本。蚂蚁已安装在客户机中。我在这里还缺少什么吗?
错误消息指示 2 个问题:
- 路径
/my/path
不存在。 - 它不包含
$PATH
中 Java Ant 安装的路径。
更新版本:
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
您的问题是"/etc/profile.d/*"下提供的环境文件不是由 root 用户提供的,这可以解释为什么您的 bash 脚本(以 root 身份运行)在其路径中没有配置 ant。
也许一个简单的解决方案是作为普通用户帐户运行构建?