Crie usuário se não existir no Ansible

8

Eu quero ter certeza de que um determinado usuário sempre exista em um sistema, então crie somente quando ele não existir

minhas tarefas atuais são:

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

No entanto, ele aumenta o erro quando um usuário já existe, portanto, como evitar o erro quando a conta do usuário já existe?

    
por Ryan 28.07.2013 / 19:06

2 respostas

11

Módulos e, portanto, playbooks como o que você mostra, tem que ser idempotente para ser de alguma utilidade.

Repetir a mesma ação várias vezes, tanto com um playbook quanto com um onliner, não resulta em nenhum erro, como esperado:

$ 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

O livro de exercícios que usei:

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

  tasks:

    - name: create admin user
      action: user name=sysadm group=1000 state=present
    
por 28.07.2013 / 20:00
0

Ou você pode simplesmente trapacear e adicionar

ignore_errors: yes  

abaixo da linha action: user

    
por 24.10.2013 / 22:45

Tags