
Tengo un archivo de inventario con un host:
10.1.32.123 ansible_ssh_user=vagabundo ansible_ssh_pass=vagabundo
Mi yaml
archivo:
- hosts: all
sudo: yes
gather_facts: yes
serial: 20
roles:
No es el yaml
archivo que deseo proteger con contraseña sino mi archivo de inventario, ya que contiene credenciales de usuario. Aunque no es posible, ya que cuando ejecuto el libro de jugadas, el contenido del archivo de inventario no se descifra. Lo hace si tengo el yaml
archivo cifrado.
ansible-playbook inventory site.yml --ask-vault-pass
- ¿Hay alguna manera de agregar las credenciales
ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
alyaml
archivo y simplemente mantener la IP en el archivo de inventario?
DOCUMENTOS:
Respuesta1
No creo que puedas cifrar el archivo de hosts. Un enfoque mucho mejor sería tener cualquier información confidencial, como credenciales, almacenada en un archivo vars secundario cifrado con ansible-vault y luego simplemente incluir ese archivo en su libro de jugadas:
- hosts: all
sudo: yes
gather_facts: yes
vars_files:
- /path/to/encrypted/vars.yml
Su inventory
archivo contiene un host:
10.1.1.2
Almacenará vars/vars.yml
sus credenciales:
ansible_ssh_user: vagrant
ansible_ssh_password: vagrant
Para utilizar más de un host, puede agregar grupos en el archivo de inventario. Los hosts que están en el grupo específico comparten las mismas credenciales:
[group1]
10.1.1.2
10.1.1.3
[group2]
10.1.1.4
10.1.1.5
Su libro de jugadas ahora tendrá dos secciones de hosts:
- hosts: group1
vars_files:
- vars/group1.yml
- hosts: group2
vars_files:
- vars/group2.yml
Los archivos group1.yml
y group2.yml
deben compartir la misma contraseña.