Ansibleに存在しない場合はユーザーを作成します


9

特定のユーザーが常にシステムに存在することを確認したいので、存在しない場合にのみ作成します

私の現在のタスクは:

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

ただし、ユーザーがすでに存在する場合はエラーが発生するので、ユーザーアカウントがすでに存在する場合にエラーを回避するにはどうすればよいですか?


3
システムの出力として正確なエラーを投稿してください。
dawud 2013

回答:


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.