Buat pengguna jika tidak ada di Ansible

9

Saya ingin memastikan pengguna yang diberikan selalu ada dalam suatu sistem, jadi hanya buat ketika itu tidak ada

tugas saya saat ini adalah:

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

Namun, itu meningkatkan kesalahan ketika pengguna sudah ada, jadi bagaimana cara menghindari kesalahan ketika akun pengguna sudah ada?

Ryan
sumber
3
Silakan kirim kesalahan yang tepat sebagai keluaran oleh sistem.
dawud

Jawaban:

11

Modul, dan oleh karena itu, buku pedoman seperti yang Anda perlihatkan, harus idempoten agar dapat digunakan.

Mengulangi tindakan yang sama beberapa kali baik dengan playbook dan onliner tidak menghasilkan kesalahan, seperti yang diharapkan:

$ 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

Playbook yang saya gunakan:

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

  tasks:

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

Atau Anda bisa curang dan menambahkan

ignore_errors: yes  

di bawah action: usergaris

art3mis
sumber
2
Ini adalah pilihan yang buruk, dan hanya boleh digunakan sebagai resor SANGAT TERAKHIR, dan HANYA jika Anda tahu persis mengapa Anda melakukan ini.
Guto Andreollo