我是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的概念。
答案 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,了解有关如何创建加密密码的详细信息。