ansible:创建用户而不询问跑步者的密码

时间:2018-07-23 08:33:05

标签: ubuntu ansible

我有以下两个yml:

---

- hosts: localhost
  vars:
    - username: test
  tasks:
    - name: Include User
      include: 'user.yml'
      become: true
---

- name: Create user '{{ username }}'
  user:
    name: '{{ username }}'
    password: 'password...'
    become: true

我收到以下错误消息:

$ ansible-playbook main.yml
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}

我不想在执行过程中传递密码。 是否可以在不询问执行者密码的情况下运行脚本?

如果是这样,我如何相应地更改ansible描述符?

Ansible 2.6.1
Ubuntu 18.04 LTS

1 个答案:

答案 0 :(得分:0)

您有几种选择

您可以在NOPASSwD中为您的用户设置/etc/sudoers,我认为这样不安全

superuser ALL=(ALL) NOPASSWD:ALL

另一种选择是在您的广告资源ansible_sudo_passhost_vars中设置变量group_vars。您应该为此创建一个保管库,而不是将密码以明文形式存储,以确保安全,但随后必须输入一个保管库密码。