¿Cómo puede un usuario con autenticación de claves SSH tener poderes de sudo en Ansible?

Creo una vm en la nube azul con la siguiente secuencia de comandos ansible:

--- - name: azure playbook hosts: localhost vars_files: ['vars.yaml'] tasks: - name: Create VM with defaults azure_rm_virtualmachine: resource_group: "{{account_prefix}}_rg" vm_size: Standard_D1 name: "{{account_prefix}}-vm1" storage_account_name: "{{account_prefix}}store1" network_interface_names: "{{account_prefix}}vm1eth0" ssh_password_enabled: false admin_username: owen ssh_public_keys: - { path: /home/owen/.ssh/authorized_keys, key_data: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDH0q4pmdkJcc/JPVJui5uWMV12GsJAsDCosfUSSFZfTIx92bb9FC3hx1zU7tD1+Zw3aQW13m6ZS2T ... YnvieSbdD3v} image: offer: CentOS publisher: OpenLogic sku: '7.2' version: latest 

pero cuando ejecuta un script adicional para agregar otro usuario:

 --- - name: create user hosts: my-vm1.westeurope.cloudapp.azure.com # vars_files: ['vars.yaml'] remote_user: owen tasks: - name: Create User user: name: andrea password: $6$rounds=656000$1AspdTb0lfOSc5yM$bAkPgHkuHwap/j6f0P88WxOdjxq3MCRO7/qgufYB.s/4t4k99wwtu/.../ group: users shell: /bin/bash become: true 

Me aparece el error “sudo: se requiere una contraseña”:

 PLAY [create user] ************************************************************* TASK [setup] ******************************************************************* fatal: [my-vm1.westeurope.cloudapp.azure.com]: FAILED! => {"changed": false, "failed": true, "module_stderr": "", "module_stdout": "sudo: a password is required\r\n", "msg": "MODULE FAILURE", "parsed": false} NO MORE HOSTS LEFT ************************************************************* to retry, use: --limit @8-add-admin-user-to-vm-with-userpswd-already.retry 

Mi inventario se ve así:

 my-vm1.westeurope.cloudapp.azure.com ansible_ssh_private_key_file=/home/myuser/.ssh/id_rsa ansible_user=owen ansible_become=true 

Entonces, ¿cómo puede el usuario tener privilegios de sudo y, por lo tanto, usar ansible ‘become’ y cosas por el estilo?

Tenga en cuenta que el mismo resultado ocurre cuando ansible_user y ansible_become se omiten del archivo de inventario.

EDITAR: Si hago ssh en el vm como owen (desde el cuadro con la clave privada ssh, que creó el vm) entonces puedo ejecutar sudo visudo -f / etc / sudoers y acceder a ese archivo. Entonces, ¿Owen tiene privilegios sudo o no? ¡Me estoy confundiendo ahora! ¿Estoy entendiendo mal el error de la secuencia de comandos agregar usuario ansible?

EDIT2: Creo que esta pregunta no es válida, ya que el usuario tiene privilegios sudo añadidos manualmente a través del portal. Todavía no estoy seguro de lo que está pasando, pero no creo que esta pregunta sea coherente, o realmente represente el problema real que bash resolver.

Puede cambiar la configuración de sudo para el usuario owen con este comando:

 sudo visudo -f /etc/sudoers 

y cambie la línea con el usuario owen a esto:

 owen ALL=(ALL) NOPASSWD:ALL 

entonces sudo no requerirá que Ansible ingrese la contraseña. O bien, podría indicar a Ansible que le pida la contraseña con el parámetro --ask-become-pass como este:

 ansible-playbook site.yml --ask-become-pass