ansible - 具有 SSH key 身份验证的用户如何在 Ansible 中拥有 sudo 权

我使用以下 ansible 脚本在 azure 云中创建了一个虚拟机:

---

- 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

但是当运行进一步的脚本来添加另一个用户时:

---

- 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

我收到“sudo:需要密码”错误:

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

我的库存如下所示:

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

那么用户如何才能拥有 sudo 权限并使用 ansible 'become' 之类的东西呢?

请注意,当从 list 文件中省略 ansible_user 和 ansible_become 时,会发生相同的结果。

编辑:如果我以 owen 身份通过 ssh 连接到虚拟机(从创建虚拟机的带有 ssh 私钥的盒子),那么我就可以运行 sudo visudo -f/etc/sudoers 并访问该文件。那么owen到底有没有sudo权限呢?我现在很迷茫!!我是否误解了 ansible 添加用户脚本的错误?

EDIT2:我认为这个问题是无效的——因为用户确实具有通过门户手动添加的 sudo 权限。我仍然不确定发生了什么,但我不认为这个问题是连贯的 - 或者真的代表我试图解决的实际问题。

相关文章:

cakephp - 如何从cakephp 3中的url访问参数

php - PHP 中的 fatal error 是什么意思?

c# - 如何在装饰器中定义事件和属性

php - 如何过滤此 PHP 数组对象中的唯一对象

php - 如何取消设置特定用户的 session ?

java - 在不同计算机之间同步 IntelliJ 项目

scala - 为什么 For Comprehension 生成器会抑制 Option 类型?

r - R中二维核密度估计的混淆

php - 如何在 laravel 中返​​回一个响应对象 json

sql - 数据库中每个表的最大值(ID)