Al tratar de usar GNS3 para practicar el script ansible, hay una instancia de docker llamada "Automatización de red" con ansible incorporado. Sin embargo, todavía usa Python 2.7 como intérprete:
root@Network-Automation:~# ansible --version ansible 2.7.11 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/dist-packages/ansible executable location = /usr/bin/ansible python version = 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]Entiendo que puedo usar el comando "ansible-playbook --version -e 'ansible_python_interpreter=/usr/bin/python3'" para ejecutar un libro de jugadas con la versión 3 de Python, o puedo especificar var dentro del libro de jugadas:
- name: Common package hosts: all gather_facts: no vars: ansible_python_interpreter: /usr/bin/python3 roles: - { role: python, tags: [ init, python, common, addusers] } ... ...Sin embargo, me gustaría tener una forma permanente de obligar a ansible a usar la versión Python3. ¿Cómo puedo conseguir esto? Gracias.
Según https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html , simplemente puede configurarlo en el inventario de ese host o en su archivo de configuración para ansible (que también se puede enviar en el mismo directorio que los libros de jugadas y/o el inventario):
Para controlar el comportamiento de descubrimiento:
- para hosts y grupos individuales, use la variable de inventario ansible_python_interpreter
- globalmente, use la clave interpreter_python en la sección [predeterminada] de ansible.cfg
¿Por qué no usar el directorio var en su función?
├── defaults │ └── main.yml ├── files ├── handlers │ └── main.yml ├── meta │ └── main.yml ├── README.md ├── tasks │ └── main.yml ├── templates ├── tests │ ├── inventory │ └── test.yml └── vars └── main.ymlen vars/main.yml simplemente agregue....
--- # vars file for XXXX ansible_python_interpreter: /usr/bin/python3Agregando algunos puntos que podría pasar por alto según los comentarios anteriores: