我想确保一个给定的用户总是存在于一个系统中,所以只有当它不存在时才创build
我目前的任务是:
- name: Create default user action: user name={{ user }} groups={{ group }} state=present
但是,当用户已经存在时会引发错误,那么如何避免用户帐号已经存在的错误呢?
模块,因此,像你展示的剧本,必须是幂等的任何使用。
如预期的那样,用剧本和在线人重复同样的动作几次都不会导致任何错误:
$ 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
或者你可以只是作弊和添加
ignore_errors: yes
在action: user
之下action: user
行