我正在目标节点上的chef服务器上运行chef bootstrap命令。脚本运行正常的初始食谱,但随着它的进展,我们看到403禁止并退出。只有在尝试从模板文件夹中复制文件时才会发生此403。当我执行另一个食谱时,我也看到了同样的问题。
配方没有问题,因为同一个食谱在不同目标节点上运行时出现问题。
任何人都知道如何解决这个问题?
Error executing action `create` on resource 'template[/tmp/rsp_files/WebGate_Installation_response_file.rsp]'
================================================================================
Net::HTTPServerException
------------------------
403 "Forbidden"
Resource Declaration:
---------------------
# In /var/chef/cache/cookbooks/ohs/recipes/install_webgate.rb
59: template "#{node['OHS']['RSP_FILE']}/WebGate_Installation_response_file.rsp" do
60: source 'WebGate_Installation_response_file.rsp.erb'
61: owner node['OHS']['USER']
62: group node['OHS']['GROUP']
63: mode '0644'
64: not_if do ::File.exists?("#{node['OHS']['RSP_FILE']}/WebGate_Installation_response_file.rsp") end
65: end
66:
Compiled Resource:
------------------
# Declared in /var/chef/cache/cookbooks/ohs/recipes/install_webgate.rb:59:in `from_file'
template("/tmp/rsp_files/WebGate_Installation_response_file.rsp") do
provider Chef::Provider::Template
action "create"
retries 0
retry_delay 2
guard_interpreter :default
path "/tmp/rsp_files/WebGate_Installation_response_file.rsp"
backup 5
atomic_update true
source "WebGate_Installation_response_file.rsp.erb"
cookbook_name "ohs"
recipe_name "install_webgate"
owner "oracle"
group "oinstall"
mode "0644"
not_if { #code block }
end
Running handlers:
[2016-05-31T17:21:45-04:00] ERROR: Running exception handlers
Running handlers complete
[2016-05-31T17:21:45-04:00] ERROR: Exception handlers complete
[2016-05-31T17:21:45-04:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
Chef Client failed. 23 resources updated in 929.166495413 seconds
[2016-05-31T17:21:45-04:00] ERROR: template[/tmp/rsp_files/WebGate_Installation_response_file.rsp] (ohs::install_webgate line 59) had an error: Net::HTTPServerException: 403 "Forbidden"
[2016-05-31T17:21:45-04:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
答案 0 :(得分:1)
将no_lazy_load true
添加到/etc/chef/client.rb
。或者升级到更新的Chef版本,我们通过将该配置选项设置为默认值来修复此问题。
答案 1 :(得分:0)
根据Chef Docs中的建议,可以通过其他方式解决此错误。
尝试添加下面提到的Chef服务器配置值(在chef-server.rb或private-chef.rb文件中)
opscode_erchef['s3_url_ttl'] = 3600
Chef Docs说明如下,
opscode_erchef [' s3_url_ttl']
连接到服务器之前的时间量(以秒为单位) 到期。如果厨师 - 客户端运行超时,请将此设置增加到 3600,然后在必要时再次调整。默认值:900。
如果在不久的将来无法切换到更新版本的Chef,此解决方案非常有用。
OR
如果由于服务器数量较大而难以添加client.rb选项。
注意:在配置文件中添加选项,需要在Chef服务器中执行重新配置。