目录
创建密码库
创建用户帐户
更新 Ansible 库的密钥
配置cron作业
按照下方所述,创建一个 Ansible 库来存储用户密码:
库名称为 /home/curtis/ansible/locker.yml
库中含有两个变量,名称如下:
pw_developer,值为 Imadev
pw_manager,值为 Imamgr
用于加密和解密该库的密码为 whenyouwishuponastar
密码存储在文件 /home/curtis/ansible/secret.txt 中
vim locker.yml
pw_developer: Imadev
pw_manager: Imamgr
vim secret.txt
whenyouwishuponastar
ansible-vault encrypt --vault-password-file=secret.txt locker.yml
ansible-vault view --vault-password-file=secret.txt locker.yml
从 http://rhgls.area12.example.com/materials/user_list.yml 下载要创建的用户的列表,并将它保存到 /home/curtis/ansible
在本次考试中使用在其他位置创建的密码库 /home/curtis/ansible/locker.yml 。创建名为 /home/curtis/ansible/users.yml 的 playbook ,从而按以下所述创建用户帐户:
职位描述为 developer 的用户应当:
在 dev 和 test 主机组中的受管节点上创建
从 pw_developer 变量分配密码
分配对应的用户ID
是补充组 devops 的成员
职位描述为 manager 的用户应当:
在 prod 主机组中的受管节点上创建
从 pw_manager 变量分配密码
分配对应的用户ID
是补充组 opsmgr 的成员
密码采用 SHA512 哈希格式。
您的 playbook 应能够在本次考试中使用在其他位置创建的库密码文件 /home/curtis/ansible/secret.txt 正常运行。
wget http://rhgls.area12.example.com/materials/user_list.yml
vim users.yml
- hosts: all
vars_files:
- user_list.yml
- locker.yml
tasks:
- group:
name: devops
state: present
- group:
name: opsmgr
state: present
- user:
name: "{{ item.name }}"
uid: "{{ item.uid }}"
groups: devops
password: "{{ pw_developer | password_hash ('sha512')}}"
state: present
when: ( 'dev' in group_names or 'test' in group_names) and ( item.job== "developer")
loop: "{{ users }}"
- user:
name: "{{ item.name }}"
uid: "{{ item.uid }}"
groups: opsmgr
state: present
password: "{{ pw_manager | password_hash ('sha512')}}"
when: ( 'prod' in group_names ) and ( item.job== "manager")
loop: "{{ users}}"
ansible-playbook users.yml --vault-password-file=secret.txt
按照下方所述,更新现有 Ansible 库的密钥:
从 http://rhgls.area12.example.com/materials/salaries.yml 下载 Ansible 库到 /home/curtis/ansible
当前的库密码为 insecure8sure
新的库密码为 bbs2you9527
库使用新密码保持加密状态
wget http://rhgls.area12.example.com/materials/salaries.yml
ansible-vault rekey salaries.yml
创建名为/home/curtis/ansible/cron.yml的playbook,在所有托管主机上运行为用户curtis创建如下cron作业:
/home/curtis/ansible/cron.yml 用户curtis必须配置运行每个2分钟并执行logger "EX294 in progress"的cron作业
vim cron.yml
- hosts: all
tasks:
- cron:
name: cron
user: curtis
minute: "*/2"
job: logger "EX294 in progress"
ansible-playbook cron.yml
ansible all -a "crontab -lu curtis"