Come può un utente con autenticazione tramite chiavi SSH avere poteri sudo in Ansible?

Creo un VM nel cloud azure con il seguente script 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 

ma quando si esegue un ulteriore script per aggiungere un altro utente:

 --- - 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 

Ottengo l’errore “sudo: una password è richiesta”:

 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 

Il mio inventario ha questo aspetto:

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

Quindi, come può l’utente avere privilegi sudo e quindi usare ‘diventare’ e simili?

Si noti che lo stesso risultato si verifica quando ansible_user e ansible_become vengono omessi dal file di inventario.

EDIT: Se scrivo sul vm come owen (dalla casella con la chiave privata ssh, che ha creato il vm), allora sono in grado di eseguire sudo visudo -f / etc / sudoers e accedere a quel file. Quindi owen ha i privilegi sudo o no? Mi sto confondendo ora !! Sto fraintendendo l’errore dallo script user ansible add?

EDIT2: Penso che questa domanda non sia valida – poiché l’utente ha privilegi sudo aggiunti manualmente attraverso il portale. Non sono ancora sicuro di cosa stia succedendo, ma non credo che questa domanda sia coerente – o rappresenta davvero il vero problema che sto cercando di risolvere.