/ / Playbook de Ansible: Requiere contraseña de sudo [duplicado] - python, ansible, ansible-2.x

Libro de jugadas Ansible: Requiere contraseña de sudo [duplicado] - python, ansible, ansible-2.x

Actualmente estoy trabajando con ansible y quiero automatizar el volcado de mi base de datos remota e importar el archivo volcado a mi base de datos local. Ahora, me encontré con algún problema para usar sudo para cambiar de usuario.

playbook.yml

  ---
- hosts: remoteserver
vars:
remote_db_name: dbname
remote_filename: dbname_{{ lookup("pipe", "date +%m-%d-%Y") }}
local_folder: /home/alde/database_backups/

tasks:
- name: Dump database
become: yes
become_user: postgres
shell: pg_dump -d {{remote_db_name}} > "{{remote_filename}}"

cuando trato de correr ansible-playbook playbook.yml vuelve: "sudo: se requiere una contraseña"

enter image description here


Lo que he intentado hasta ahora.

1) lo intenté esta solución añadiendo sudo_flags.

ansible.cfg

[defaults]
sudo_flags = -H -S

luego tengo un error diferente cuando ejecuto mi libro de jugadas: "Tiempo de espera (12s) esperando la solicitud de escalada de privilegios:"

enter image description here

2) aumenté el se acabó el tiempo hasta 30.

3) Agregué el usuario remoto predeterminado al archivo sudoers

Es extraño porque no hay una solicitud de contraseña cuando intento acceder a mi servidor remoto usando ssh y cambiar de default_user a postgres usando sudo su - postgres


  • ansible 2.3.0.0
  • Python 2.7
  • Ubuntu 14.04

Respuestas

-1 para la respuesta № 1

El glosario vinculado dice:

El valor predeterminado es ‘-H -S -n’ que establece el INICIOvariable de entorno, solicita contraseñas a través de STDIN y evita pedirle al usuario que ingrese cualquier tipo de información. Tenga en cuenta que ‘-n’ entrará en conflicto con el uso de sudo sin contraseña, como pam_ssh_agent_auth. En algunas situaciones, es posible que desee agregar o eliminar marcas, pero en general la mayoría de los usuarios no necesitarán cambiar esta configuración:

Así que creo que probar la bandera -n también cambiaría algo al menos ya que parece que lo has cambiado a esperando autenticación más bien que no hay autenticación Con tu última modificación.


-1 para la respuesta № 2

Trate de agregar su usuario root en el host.

 ---
- hosts: remoteserver
remote_user: root
become: yes
become_user: root
become_method: sudo
vars:
remote_db_name: dbname
remote_filename: dbname_{{ lookup("pipe", "date +%m-%d-%Y") }}
local_folder: /home/alde/database_backups/

tasks:
- name: Dump database
become: yes
become_user: postgres
shell: pg_dump -d {{remote_db_name}} > "{{remote_filename}}"

Puedes intentar agregar la línea a sudoer file (sudo visudo) <ssh user> ALL=(ALL) NOPASSWD:ALL y probarlo, tal vez algo anda mal ahí.