本文已参与「新人创作礼」活动,一起开启掘金创作之路
RHCE之路--14创建用户帐户
1. 考题
RHCE之路--14创建用户帐户 从 materials.example.com/cd/exam_rhc… 下载要创建的用户的列表,并将它保存到 /home/student/ansible 在本次考试中使用在其他位置创建的密码库 /home/student/ansible/locker.yml 。创建名 为 /home/student/ansible/users.yml 的 playbook ,从而按以下所述创建用户帐户: 职位描述为 developer 的用户应当: 在 dev 和 test 主机组中的受管节点上创建 从 pw_developer 变量分配密码 是补充组 devops 的成员 职位描述为 manager 的用户应当: 在 prod 主机组中的受管节点上创建 从 pw_manager 变量分配密码 是补充组 opsmgr 的成员 密码采用 SHA512 哈希格式。 您的 playbook 应能够在本次考试中使用在其他位置创建的库密码文件 /home/student/ansible/secret.txt 正常运行。
2. 解题
vi /home/student/ansible/users.yml
---
- hosts: dev,test,prod
vars_files:
- /home/student/ansible/user_list.yml
- /home/student/ansible/locker.yml
tasks:
- name: create group devops
group:
name: devops
state: present
when: inventory_hostname in groups.dev or inventory_hostname in groups.test
- name: useradd groups devops
user:
name: "{{ item.name }}"
groups: devops
password: "{{ pw_developer | password_hash('sha512') }}"
loop: "{{ users }}"
when: item.job == "developer" and ( inventory_hostname in groups.dev or inventory_hostname in groups.test )
- name: create group opsmgr
group:
name: opsmgr
state: present
when: inventory_hostname in groups.prod
- name: useradd groups opsmgr
user:
name: "{{ item.name }}"
groups: opsmgr
password: "{{ pw_manager | password_hash('sha512') }}"
loop: "{{ users }}"
when: item.job == "manager" and inventory_hostname in groups.prod
3. 确认本题是否成功
ansible-playbook /home/student/ansible/users.yml --vault-password=/home/student/ansible/secret.txt
这条应该在test,dev有正常返回
ansible test,dev -a 'id john'
这两条在test,dev应该没有
ansible test,dev -a 'id james'
ansible test,dev -a 'id mary'
这两条在prod应该有
ansible prod -a 'id james'
ansible prod -a 'id mary'
这条在prod应该没有
ansible prod -a 'id john'