我想确保给定用户始终存在于系统中,因此仅在不存在时创建
我目前的任务是:
- 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
线