Ansible期望python 2.在我的系统(Arch Linux)上,"python"是Python 3,所以我必须传递-e "ansible_python_interpreter=/usr/bin/python2"
每个命令.
ansible-playbook my-playbook.yml -e "ansible_python_interpreter=/usr/bin/python2"
Run Code Online (Sandbox Code Playgroud)
ansible_python_interpreter
在我的系统上是否有全局设置,所以我不必将它传递给每个命令?我不想将它添加到我的剧本中,因为并非所有运行剧本的系统都有类似于我的设置.
Dom*_*tro 31
那你可以用三种方式设置
ansible_python_interpreter=/usr/bin/python2
这将根据主机设置它ansible_python_interpreter: "/usr/bin/python2"
这将为每个主机设置它group_vars/all
(您可能需要创建目录group_vars
和文件all
)ansible_python_interpreter: "/usr/bin/python2"
希望有所帮助
对于想要使用本地激活的 virtualenv python 解释器的人
在inventory
文件集中
[local]
localhost ansible_python_interpreter=python
Run Code Online (Sandbox Code Playgroud)
我选择使用 Ansible 从目录中获取库存的能力。通过这种方式,我可以ansible_python_interpreter
仅为本地机器定义for localhost
inventory_dir/local
[local]
localhost ansible_python_interpreter="/path/to/alternate/bin/python"
Run Code Online (Sandbox Code Playgroud)
然后就像使用清单文件一样使用该目录。
ansible-playbook -i inventory_dir playbook.yml
归档时间: |
|
查看次数: |
18924 次 |
最近记录: |