RHCE8 练习题:创建用户账户
- 从
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 变量分配密码
- 是补充组 student 的成员
- 职位描述为 manager 的用户应当:
- 在 prod 主机组中的受管节点上创建
- 从pw_manager 变量分配密码
- 是补充组 opsmgr 的成员
- 密码采用 SHA512 hash格式
- 您的 playbook 应能够在本次考试中使用在其他位置创建的库密码文件 /home/student/ansible/secret.txt 正常运行
Answer:
wget http://materials.example.com/cd/exam_rhce8/user_list.yml
vim /home/student/ansible/users.yml
---
- name: create users
hosts: dev,test,prod
vars_files:
- /home/student/ansible/locker.yml
- /home/student/ansible/user_list.yml
tasks:
- name: create user and student group
group:
name: student
loop: "{{ users }}"
when: item.job == "developer" and (inventory_hostname in groups.dev or inventory_hostname in groups.test)
- name: create user and pass
user:
name: "{{ item.name }}"
password: "{{ pw_developer | password_hash('sha512') }}"
groups: student
loop: "{{ users }}"
when: item.job == "developer" and (inventory_hostname in groups.dev or inventory_hostname in groups.test)
- name: create opsmgr group
group:
name: opsmgr
loop: "{{ users }}"
when: item.job == "manager" and inventory_hostname in groups.prod
- name: create user and password
user:
name: "{{ item.name }}"
password: "{{ pw_manager | password_hash('sha512') }}"
groups: opsmgr
loop: "{{ users }}"
when: item.job == "manager" and inventory_hostname in groups.prod
ansible-playbook users.yml --vault-password-file=secret.txt
验证
ansible all -a 'tail -3 /etc/passwd'