RHCE之路–14创建用户帐户
1. 考题
RHCE之路–14创建用户帐户
从 http://materials.example.com/cd/exam_rhce8/user_list.yml 下载要创建的用户的列表,并将它保存到
/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'