如果用户存在,则更新密码

时间:2018-12-07 07:54:46

标签: linux ansible

我是Ansible的新手,我尝试在远程服务器上创建一些用户帐户,但遇到了一些麻烦。 如果用户不存在,我想创建它们,如果存在,请更新他们的密码。

我阅读了文档,找到了参数“ update_password”,但是我不知道如何验证其存在。

我尝试这样做:

- name: Determine local user accounts
   getent:
    database: passwd

 - name: Add user
   user:
     name: support
     comment: support account
     password: bonjour
     groups: support,pricing
     append: yes
   with_items: {{ user }}
   when: user not in ansible_facts.getent_passwd

 - name: Update user password
   user:
     name: support
     password: bonjour
     update_password: always
   with_items: {{ user }}
   when: user in ansible_facts.getent_passwd

我不确定要了解ansible_facts的概念。

1 个答案:

答案 0 :(得分:3)

Ansible的关键基础是它围绕idempotency构建。这意味着您只需描述您希望系统所处的状态,然后将其留给Ansible来找出使系统与所需状态相匹配所需做的细节。

因此,您只需要在系统上定义所需的用户,Ansible将负责检查他们是否已经存在,并采取相应的措施:

- name: Manage support user
  user:
     name: support
     comment: support account
     password: <some crypted password string>
     groups: support,pricing
     append: yes

这将添加用户(如果尚不存在),否则更新用户参数以符合您的规范。

注意:您不应在这些任务中输入明文密码。 Checkout this page,了解有关如何创建加密密码的详细信息。