0
我正面临一个奇怪的问题。当厨师从用户数据(cloud-init)执行时,我的下面的厨师食谱失败。composer.phar安装问题(cloudinit vs manual)
它要求输入HOME/COMPOSER_HOME env变量。
但是,如果我从SSH终端运行手动厨师客户端(或者甚至直接在终端上运行命令),它运行良好。
PS:composer.phar和composer.json由开发商提供的(在WordPress拉链捆绑)
==配方片段==
# Install Composer
script "install_composer" do
interpreter "bash"
user "root"
cwd "#{node.apache.default_docroot}/html"
code <<-EOH
/opt/rh/rh-php56/root/usr/bin/php composer.phar install
EOH
not_if {File.exists?("#{node.default_docroot}/html/composer.lock")}
end
==当从SSH终端运行==
* script[install_composer] action run
- execute "bash" "/tmp/chef-script20160722-5397-1sjwxg9"
==云INIT-SNI Output.log PPET ==
================================================================================
Error executing action `run` on resource 'script[install_composer]'
================================================================================
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of "bash" "/tmp/chef-script20160722-2013-r6sdpo" ----
STDOUT:
STDERR: [RuntimeException]
The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly
---- End output of "bash" "/tmp/chef-script20160722-2013-r6sdpo" ----
Ran "bash" "/tmp/chef-script20160722-2013-r6sdpo" returned 1
Resource Declaration:
---------------------
# In /var/chef/cache/cookbooks/webps-commportal/recipes/wordpress.rb
49: script "install_composer" do
50: interpreter "bash"
51: user "root"
52: cwd "#{node.apache.default_docroot}/html"
53: code <<-EOH
54: /opt/rh/rh-php56/root/usr/bin/php composer.phar install
55: EOH
56: not_if {File.exists?("#{node.apache.default_docroot}/html/composer.lock")}
57: end
58:
Compiled Resource:
------------------
# Declared in /var/chef/cache/cookbooks/webps-commportal/recipes/wordpress.rb:49:in `from_file'
script("install_composer") do
action "run"
retries 0
retry_delay 2
guard_interpreter :default
command "\"bash\" \"/tmp/chef-script20160722-2013-r6sdpo\""
backup 5
cwd "/opt/rh/httpd24/root/var/www/html"
returns 0
user "root"
code "\t/opt/rh/rh-php56/root/usr/bin/php composer.phar install\n"
interpreter "bash"
cookbook_name "webps-commportal"
recipe_name "wordpress"
not_if { #code block }
end
---- Begin output of "bash" "/tmp/chef-script20160722-2013-r6sdpo" ----
STDOUT:
STDERR: [RuntimeException]
The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly
---- End output of "bash" "/tmp/chef-script20160722-2013-r6sdpo" ----
Ran "bash" "/tmp/chef-script20160722-2013-r6sdpo" returned 1
让我试试。我会回来的结果。谢谢 – charsidrogo
Woot这工作! '[2016-07-22T06:14:58-04:00] INFO:处理脚本[install_composer]操作运行(webps-commportal :: WordPress的线49) [2016-07-22T06:15:25 -04:00] INFO:脚本[install_composer]跑successfully' ==更新厨师资源块== '脚本 “install_composer” 做 \t解释 “庆典” \t用户 “根” \t环境“HOME '=>“/ root” \t cwd“#{node.apache.default_docroot}/html” \t代码<< - EOH \t的/ opt/RH/RH-php56 /根的/ usr/bin中/ PHP composer.phar安装--no正在进行 \t EOH \t not_if {File.exists?(“#{} node.apache.default_docroot/HTML /composer.lock“)} end' – charsidrogo
评论不保存格式,但很高兴它工作:) – coderanger