Ansible expects python 2. On my system (Arch Linux), "python" is Python 3, so I have to pass -e "ansible_python_interpreter=/usr/bin/python2"
with every command.
ansible-playbook my-playbook.yml -e "ansible_python_interpreter=/usr/bin/python2"
Is there a away to set ansible_python_interpreter
globally on my system, so I don't have to pass it to every command? I don't want to add it to my playbooks, as not all systems that runs the playbook has a setup similar to mine.
Ansible has a strict set of rules to create valid variable names. Variable names can contain only letters, numbers, and underscores and must start with a letter or underscore. Some strings are reserved for other purposes and aren't valid variable names, such as Python Keywords or Playbook Keywords.
These are variables that contain information pertinent to the current host ( inventory_hostname ). They are only available if gathered first.
Playbook Variables To define a variable in a playbook, simply use the keyword vars before writing your variables with indentation. To access the value of the variable, place it between the double curly braces enclosed with quotation marks. Here's a simple playbook example: - hosts: all vars: greeting: Hello world!
I opted to use Ansible's ability to source inventory from a directory. In this manner I could define the ansible_python_interpreter
for localhost only for the local machine
inventory_dir/local
[local] localhost ansible_python_interpreter="/path/to/alternate/bin/python"
And then just use the directory as you would an inventory file.
ansible-playbook -i inventory_dir playbook.yml
Well you can set in three ways
ansible_python_interpreter=/usr/bin/python2
this will set it per hostansible_python_interpreter: "/usr/bin/python2"
this will set it per hostgroup_vars/all
(you may need to create the directory group_vars
and the file all
) as ansible_python_interpreter: "/usr/bin/python2"
Hope that helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With