Chef infra Chef中的yum_程序包资源在CentOS 8上不工作
之前,我们在一些服务器上使用了RHEL7.2。我们正在切换到CentOS 8。以下资源在RHEL上工作,但在CentOS上失败Chef infra Chef中的yum_程序包资源在CentOS 8上不工作,chef-infra,yum,centos8,Chef Infra,Yum,Centos8,之前,我们在一些服务器上使用了RHEL7.2。我们正在切换到CentOS 8。以下资源在RHEL上工作,但在CentOS上失败 %w[ed rsync nmap telnet vim bash-completion].each do |package| yum_package package do action :install end end 错误是: ======================================================
%w[ed rsync nmap telnet vim bash-completion].each do |package|
yum_package package do
action :install
end
end
错误是:
================================================================================
Error executing action `install` on resource 'yum_package[ed]'
================================================================================
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of /usr/libexec/platform-python /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.22.1/lib/chef/provider/package/yum/yum-dump.py --options --installed-provides --yum-lock-timeout 30 ----
STDOUT:
STDERR: File "/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.22.1/lib/chef/provider/package/yum/yum-dump.py", line 72
except yum.Errors.ConfigError, e:
^
SyntaxError: invalid syntax
通过编辑yum dump.py
文件并将相关行更改为
except yum.Errors.ConfigError as e:
我可以消除错误。在那条线上。除之外的下一次操作将失败
我试着安装python2,但没用。我试着删除python3,这样只有python2可用,这也没有帮助。如何将yum软件包更新为语法正确的软件包?切换到软件包资源可以巧妙地回避这个问题。问题已解决。您实际上不需要在此循环,也可以将数组传递给资源:包%w[ed rsync nmap telnet vim bash completion]
。这将在1命令中安装所有软件包。