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


9

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

我当前的任务是:

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

但是,如果用户已经存在,则会引发错误,那么如何避免用户帐户已经存在的错误呢?


3
请发布系统输出的确切错误。
dawud

Answers:


11

模块,以及像您展示的那样的剧本,必须是幂等的才能有用。

如预期的那样,对剧本和在线游戏重复几次相同的操作不会导致任何错误:

$ 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

0

或者您可以作弊并添加

ignore_errors: yes  

下面的action: user线


2
这是一个糟糕的选择,并且只能用作“万不得已”的手段,并且只有在您完全知道执行此操作的原因时才可以使用。
Guto Andreollo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.