Wie kann ein Benutzer mit SSH-Schlüsselauthentifizierung Sudo-Berechtigungen in Ansible haben? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Fehlendes sudo-Passwort in Ansible 4 AntwortenAnsible: sudo ohne Passwort 2 AntwortenIch erstelle eine VM in der Azure Cloud mit dem folgenden ansiblen Skript:
---
- 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
aber wenn Sie ein weiteres Skript ausführen, um einen anderen Benutzer hinzuzufügen:
---
- 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
Ich erhalte den Fehler "sudo: ein Passwort ist erforderlich":
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
Mein Inventar sieht so aus:
my-vm1.westeurope.cloudapp.azure.com ansible_ssh_private_key_file=/home/myuser/.ssh/id_rsa ansible_user=owen ansible_become=true
Also, wie kann der Benutzer Sudo-Rechte haben und so ansible "werden" und dergleichen verwenden?
Beachten Sie, dass dasselbe Ergebnis auftritt, wenn ansible_user und ansible_become nicht in der Inventardatei enthalten sind.
EDIT: Wenn ich auf der VM als Owen ssh (von der Box mit dem privaten SSH-Schlüssel, der die VM erstellt hat), kann ich sudo visudo -f / etc / sudoers ausführen und auf diese Datei zugreifen. Hat Owen Sudo-Rechte oder nicht? Ich werde jetzt verwirrt !! Verstehe ich den Fehler im ansible Add User Script falsch?
EDIT2: Ich denke, diese Frage ist ungültig, da der Benutzer sudo-Berechtigungen hat, die manuell über das Portal hinzugefügt wurden. Ich bin mir immer noch nicht sicher, was los ist, aber ich denke nicht, dass diese Frage schlüssig ist - oder wirklich das eigentliche Problem darstellt, das ich zu lösen versuche.