Saltar al contenido

Especifique la contraseña de sudo para Ansible

Presta atención porque en este post encontrarás el arreglo que buscas.

Solución:

los documentos fuertemente recomienda no establecer la contraseña de sudo en texto sin formato y, en su lugar, usar --ask-sudo-pass en la línea de comando cuando se ejecuta ansible-playbook


Actualización de 2016:

Ansible 2.0 (no 100% cuando) marcado --ask-sudo-pass como obsoleto. Los documentos ahora recomiendan usar --ask-become-pass en cambio, al mismo tiempo que intercambia el uso de sudo a lo largo de sus libros de jugadas con become.

Puede pasar variable en la línea de comando a través de --extra-vars "name=value". La variable de contraseña de Sudo es ansible_sudo_pass. Entonces su comando se vería así:

ansible-playbook playbook.yml -i inventory.ini --user=username 
                              --extra-vars "ansible_sudo_pass=yourPassword"

Actualización 2017: Ansible 2.2.1.0 ahora usa var ansible_become_pass. Cualquiera parece funcionar.

Probablemente la mejor manera de hacer esto, suponiendo que no pueda usar la solución NOPASSWD proporcionada por scottod, es usar la solución de Mircea Vutcovici en combinación con la bóveda de Ansible.

Por ejemplo, podría tener un libro de jugadas como este:

- hosts: all

  vars_files:
    - secret

  tasks:
    - name: Do something as sudo
      service: name=nginx state=restarted
      sudo: yes

Aquí estamos incluyendo un archivo llamado secret que contendrá nuestra contraseña sudo.

Usaremos ansible-vault para crear una versión cifrada de este archivo:

ansible-vault create secret

Esto le pedirá una contraseña, luego abra su editor predeterminado para editar el archivo. Puedes poner tu ansible_sudo_pass aquí

p.ej: secret:

ansible_sudo_pass: mysudopassword

Guarde y salga, ahora tiene un cifrado secret archivo que Ansible puede descifrar cuando ejecuta su libro de jugadas. Nota: puede editar el archivo con ansible-vault edit secret (e ingrese la contraseña que utilizó al crear el archivo)

La pieza final del rompecabezas es proporcionar a Ansible una --vault-password-file que utilizará para descifrar su secret expediente.

Crea un archivo llamado vault.txt y en eso pon la contraseña que usaste al crear tu secret expediente. La contraseña debe ser un string almacenado como una sola línea en el archivo.

De los documentos de Ansible:

.. asegúrese de que los permisos en el archivo sean tales que nadie más pueda acceder a su key y no agregues tu key al control de fuente

Finalmente: ahora puede ejecutar su libro de jugadas con algo como

ansible-playbook playbook.yml -u someuser -i hosts --sudo --vault-password-file=vault.txt 

Lo anterior supone el siguiente diseño de directorio:

.
|_ playbook.yml
|_ secret
|_ hosts
|_ vault.txt

Puede leer más sobre Ansible Vault aquí: https://docs.ansible.com/playbooks_vault.html

Si te animas, tienes el poder dejar una crónica acerca de qué le añadirías a esta crónica.

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


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

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