gpt4 book ai didi

python - Vagrant + Ansible + Python3

转载 作者:太空狗 更新时间:2023-10-29 19:34:32 24 4
gpt4 key购买 nike

我有一个 Vagrantfile 被简化为:

Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.boot_timeout = 900

config.vm.define 'srv' do |srv|
srv.vm.provision 'ansible' do |ansible|
ansible.compatibility_mode = '2.0'
ansible.playbook = 'playbook.yml'
end
end
end

当我运行 vagrant provision 时,在 Gathering Facts 阶段,我得到 /usr/bin/python: not found 因为 Ubuntu 16.04默认情况下只有 python3 没有安装 Python 2.x python

我看到几篇关于此的旧帖子。似乎最近版本的 Ansible 支持使用 Python 3,但它必须通过主机文件或 ansible 命令行中的 ansible_python_interpreter=/usr/bin/python3 进行配置。有什么方法可以在我的 Vagrantfileplaybook.yml 文件中指定此选项?我目前没有使用主机文件,我没有通过命令行运行 ansible-playbook,我正在通过 Vagrant 集成运行 Ansible。

仅供引用,我使用的是 Ansible 2.4.1.0 和 Vagrant 2.0.1,它们是撰写本文时的最新版本。

最佳答案

据我所知,您可以在 Vagrant 文件中使用 extra_vars,确保将其放在 ansible 范围内。

Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.boot_timeout = 900

config.vm.define 'srv' do |srv|
srv.vm.provision 'ansible' do |ansible|
ansible.compatibility_mode = '2.0'
ansible.playbook = 'playbook.yml'
ansible.extra_vars = { ansible_python_interpreter:"/usr/bin/python2" }
end
end
end

在上面的 block 中,extra_vars 是用ansible_python_interpreter 设置的,或者您可以像这样使用 host_vars:

ansible.host_vars = {
"default" => {
"ansible_python_interpreter" => "/usr/bin/python2.7"
}
}

关于python - Vagrant + Ansible + Python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47423488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com