使用 Chef 安装并启用 python 3
Installing and enabling python 3 with Chef
我正在尝试使用 Chef 安装 python 这是操作手册
sudo yum -y install centos-release-scl
sudo yum -y install rh-python36
sudo scl enable rh-python36
第 4 步需要 python 3。当我手动执行此操作时,它按预期工作,但是当我通过 chef 执行时,它仍然认为它是 python 2.7,因此它在第 4 次失败步。我该如何解决这个问题?
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
您可能想看看 poise-python 社区食谱。该说明书允许您指定要使用的 python 和 pip 版本,并允许您使用说明书的自定义资源通过 pip 安装 python 包。这是安装 python 3 :
的示例代码块
python_runtime '3' do
version 3
action :install
end
然后您可以通过以下方式安装您的软件包:
python_package 'datadog-checks-dev[cli]'
我假设你是 运行 厨师作为 root
用户,所以你应该能够摆脱所有的 sudo
s 和 multipe execute 语句,并一次执行所有内容execute
或 bash
资源甚至更好:为 yum 作业使用 package
资源。
据我了解 scl enable
要么操纵 shell 环境 and/or 改变符号链接方向。在您的示例中,您似乎以 bash
环境为目标,因此您可能想要使用 bash
厨师资源。根据 scl
的工作方式,您可能必须提供 ride "flag" 属性。
我正在尝试使用 Chef 安装 python 这是操作手册
sudo yum -y install centos-release-scl
sudo yum -y install rh-python36
sudo scl enable rh-python36
第 4 步需要 python 3。当我手动执行此操作时,它按预期工作,但是当我通过 chef 执行时,它仍然认为它是 python 2.7,因此它在第 4 次失败步。我该如何解决这个问题?
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
您可能想看看 poise-python 社区食谱。该说明书允许您指定要使用的 python 和 pip 版本,并允许您使用说明书的自定义资源通过 pip 安装 python 包。这是安装 python 3 :
的示例代码块python_runtime '3' do
version 3
action :install
end
然后您可以通过以下方式安装您的软件包:
python_package 'datadog-checks-dev[cli]'
我假设你是 运行 厨师作为 root
用户,所以你应该能够摆脱所有的 sudo
s 和 multipe execute 语句,并一次执行所有内容execute
或 bash
资源甚至更好:为 yum 作业使用 package
资源。
据我了解 scl enable
要么操纵 shell 环境 and/or 改变符号链接方向。在您的示例中,您似乎以 bash
环境为目标,因此您可能想要使用 bash
厨师资源。根据 scl
的工作方式,您可能必须提供 ride "flag" 属性。