如果 Ansible 中不存在用户,则创建用户

如果 Ansible 中不存在用户,则创建用户

我想确保给定用户始终存在于系统中,因此仅在不存在时创建

我目前的任务是:

- name: Create default user
action: user name={{ user }} groups={{ group }}  state=present

但是当用户已经存在时,就会引发错误,那么如何避免当用户帐户已经存在时出现错误呢?

答案1

因此,模块以及您所展示的剧本必须是幂等的才有用。

使用剧本和在线程序重复相同操作几次不会导致任何错误,正如预期的那样:

$ ansible 10.0.0.2 -u dawud -m user -a "name=sysadm group=1000 state=present"
10.0.0.2 | success >> {
    "append": false,
    "changed": false,
    "comment": "System Administrator,,,",
    "group": 1000,
    "home": "/home/sysadm",
    "name": "sysadm",
    "shell": "/bin/bash-static",
    "state": "present",
    "uid": 1000
}


$ ansible-playbook ansible/sample.yml -u dawud -K
sudo password:

PLAY [10.0.0.2] *********************

GATHERING FACTS *********************
ok: [10.0.0.2]

TASK: [create admin user] *********************
ok: [10.0.0.2]

PLAY RECAP *********************
10.0.0.2                       : ok=2    changed=0    unreachable=0    failed=0

我使用的剧本:

$ cat ansible/sample.yml
- hosts: 10.0.0.2
  sudo: yes

  tasks:

    - name: create admin user
      action: user name=sysadm group=1000 state=present

答案2

或者你也可以作弊并添加

ignore_errors: yes  

低于标准action: user线

相关内容