Saltar al contenido

¿Cómo almacenar ansible_become_pass en una bóveda y cómo usarlo?

Deseamos compartir contigo la mejor solución que descubrimos en internet. Nosotros queremos que te sirva de ayuda y si puedes aportar algo que nos pueda ayudar a mejorar siéntete libre de hacerlo..

Solución:

Debe crear algunos archivos de variables almacenados y luego incluirlos en sus libros de jugadas o en la línea de comando.

Si cambia su archivo de inventario para usar una variable para el pase convertido, esta variable se puede almacenar:

[my-servers]
san-francisco ansible_host=san-francisco ansible_ssh_user=user ansible_become_pass=' sanfrancisco_become_pass '
san-diego     ansible_host=san-diego     ansible_ssh_user=user ansible_become_pass=' sandiego_become_pass '

Entonces usa ansible-vault create vaulted_vars.yml para crear un archivo abovedado con el siguiente contenido:

sanfrancisco_become_pass: 
sandiego_become_pass    : 

Luego incluya el archivo abovedado como variables adicionales como esta:

ansible-playbook -i ~/.ansible/inventory/hosts playbook.yml --ask-vault-pass [email protected]~/.ansible/inventory/vault_vars

O incluya el archivo vars en su libro de jugadas con una tarea include_vars:

- name        : include vaulted variables
  include_vars: ~/.ansible/inventory/vault_vars

Después de configurar un inventario con su propia configuración relevante. Estos ajustes suponen que ya ha configurado un rsa-key empareje para acceder a su servidor. Debería poder ingresar a su servidor con ssh [email protected]

[local]
localhost    ansible_connection=local

[remote]
155.42.88.199   ansible_connection=ssh    ansible_user=remoteuser ansible_become_user=root ansible_become=yes  ansible_ssh_private_key_file=

Debe almacenar su contraseña de root en un archivo (llamé al mío ‘my_vault.yml’). Puedes hacer esto con el siguiente comando:

~/.ansible$ ansible-vault create my_vault.yml

Simplemente almacene la contraseña de su servidor remoto de la siguiente manera (no incluya las etiquetas ‘<>‘)

su_password:  

La contraseña ahora estará encriptada por bóveda y la única forma de ver esto es ingresar el siguiente comando.

~/.ansible$ ansible-vault edit my_vault.yml

Ahora necesitamos incluir nuestro archivo ‘my_vault.yml’ en nuestro libro de jugadas. Podemos hacer esto usando vars-files para obtener el valor de su-password. Ahora podemos crear una var titulada ansible_become_pass que será pasado el valor de nuestro my_vault.yml archivo que permitirá a nuestro usuario remoto hacer su una vez en el servidor.

---
- name: My Awesome Playbook
  hosts: remote
  become: yes

  vars_files:
    - ~/.ansible/my_vault.yml 

  vars:
    ansible_become_pass: ' su_password '

  roles:
      - some_awesome_role

Como estamos usando la bóveda cada vez que queremos ejecutar este libro de jugadas, necesitamos usar el siguiente comando.

ansible-playbook myawesome_playbook.yml --ask-vault-pass

La mejor manera de resolver este problema es usar host_vars. La configuración más fácil es simplemente poner el ansible_become_pass en archivos cifrados de Vault en los directorios host_vars correspondientes como este:

myplaybook.yml
host_vars/onehost.com/crypted
host_vars/otherhost.com/crypted

En el crypted archivos que coloca la asignación de la ansible_become_pass variable:

ansible_become_pass: SuperSecre3t

Crea el archivo con ansible-vault createedítalo con ansible-vault edit.

Siguiendo los consejos de los documentos de Ansible, debe crear un archivo adicional por host que asigne el ansible_become_passwd de la variable cifrada que tiene un nombre diferente. De esa manera es posible buscar el ansible_become_passwd en los archivos del proyecto.

myplaybook.yml
host_vars/onehost.com/plain
host_vars/onehost.com/crypted
host_vars/otherhost.com/plain
host_vars/otherhost.com/crypted

donde un plain archivo contiene algo como esto:

ansible_become_pass: " vaulted_become_pass "

y el crypted archivo establece el vaulted_become_pass como se muestra arriba.

Todos crypted los archivos deben estar encriptados con el mismo key y ansible-playbook hay que llamar con --ask-vault-pass.

valoraciones y comentarios

Recuerda mostrar este tutorial si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *