使用 Chef 安装和启用 python 3



我正在尝试与厨师一起安装python,这是运行手册

sudo yum -y install centos-release-scl
sudo yum -y install rh-python36
sudo scl enable rh-python36

第 4 步需要 python 3。当我手动执行此操作时,它按预期工作,当我通过厨师执行此操作时,它仍然认为它是python 2.7,因此它在第四步失败。我该如何解决这个问题?

execute "install centos-release-scl" do
command "sudo yum -y install centos-release-scl"
action :run
end
execute "install rh-python36" do
command "sudo yum -y install rh-python36"
action :run
end
execute "enable rh-python3" do
command "sudo scl enable rh-python36 bash"
action :run
end
execute "pip install dd-check-dev" do
command "pip install 'datadog-checks-dev[cli]'"
action :run
end

我假设您以root用户身份运行 chef,因此您应该能够摆脱所有sudo和 multipe execute 语句,只需在一个executebash资源中执行所有内容,甚至更好:将package资源用于 yum 作业。

据我了解scl enable要么操纵外壳环境和/或更改符号链接方向。在您的示例中,您似乎以bash环境为目标,因此您可能希望使用bashchef 资源。根据scl的工作方式,您可能需要提供行程"flag"属性。

你可能想看看poise-python社区食谱。该说明书允许您指定要使用的 python 和 pip 版本,并允许您使用说明书的自定义资源通过 pip 安装 python 软件包。以下是安装 python 3 的示例代码块:

python_runtime '3' do
version 3
action :install
end

然后,您可以通过以下方式安装软件包:

python_package 'datadog-checks-dev[cli]'

最新更新