tower playbooks playbook group_vars ansible ansible-playbook

playbooks - Ansible obtener el nombre de usuario de la línea de comandos



ansible tower (2)

Como declaró Woodham, la variable ansible que representa al usuario que se conecta es

{{ ansible_user }} (Ansible < 2.0 was {{ ansible_ssh_user }} )

Pero no tiene que definirlo en el archivo de inventario per se.

Se puede definir en:

1. Su juego, si usa ansible-playbook: vea el manual en Playbooks

- name: Some play hosts: all remote_user: ubuntu

2. En el archivo de inventario: ver el manual de inventario.

[all] other1.example.com ansible_user=ubuntu (Ansible < 2.0 was ansible_ssh_user)

3. Como dijiste, en la línea de comandos:

ansible-playbook -i inventory -u ubuntu playbook.yml

4. Un archivo de configuración ansible como una directiva de remote_user . Ver el manual en un archivo de configuración.

El archivo de configuración ansible se puede colocar en la carpeta actual ansible.cfg , su homedir .ansible.cfg o /etc/ansible/ansbile.cfg .

[defaults] remote_user=ubuntu

En mis libros de jugadas me refiero a un nombre de usuario (exclusivamente su "ubuntu") mucho.

¿Existe una forma integrada de decir "obtenerlo del valor pasado en la línea de comando"?

Se que puedo hacer

ansible-playbook <task> -u <user> -K --extra-vars "user=<user>"

y luego puedo usar {{user}} en el libro de jugadas, pero se siente extraño definir al usuario dos veces.


Creo que la forma estándar de hacerlo sería definir ansible_ssh_user en el archivo de inventario y luego puede hacer referencia a él como {{ansible_ssh_user}} en el libro de jugadas.