1、创建一个名为 locker.yml 的 ansible vault 文件存储用户密码:
-
Vault 文件中包含两个变量:
pw_developer: imadev
pw_manager: imamgr
-
加密此文件的密码为redhat
-
此密码存放在:~/ansible/secret.txt
[root@servera ansible]# echo redhat >secret.txt
[root@servera ansible]# chmod 600 secret.txt
[root@servera ansible]# ansible-vault create locker.yml -vault-password-file=secret.txt
[root@servera ansible]# cat locker.yml
$ANSIBLE_VAULT;1.1;AES256
37393662346638636431656162383033373738643939376337376561343638353435333436313262
3933303639343161393830643663613536383065376531650a653361643663353937373735656335
64333561643162353262323536393533616231393132626639623761663761366564326566393266
6361663036613439350a306262633562653263333436653030383135316264656235346337393439
61353433663562326139353965613761643161326430613065613738373237633335623738323864
6261366339336435343734663139663439666463663337373363
[root@servera ansible]# ansible-vault view locker.yml
Vault password:
pw_developer: imadev
pw_manager: imamgr
2、创建用户账户
-
需要创建的用户账户清单来自于files/14/user_list.yml,请拷贝到~/ansible中
-
配合上一题的locker.yml,创建名为users.yml的playbook,要求如下:
-
用户的 job description 为 developer 的用户, 创建到 dev和test 主机组中,用户密码来自pw_developer变用量,用户的附加组是devops
-
用户的 job description 为 manager 的用户,创建到 prod 主机组中,用户密码来自pw_manager变量,用户附加组是opsmgr
-
用户密码使用 SHA512 hash
[root@servera ansible]# cp ~/files/14/user_list.yml .
[root@servera ansible]# vim users.yml
[root@servera ansible]# cat users.yml
---
- name:create user
hosts: all
vars_files:
- locker.yml
- user_list.yml
tasks:
- name: create group devops
group:
name: devops
state: present
when: ansible_hostname in groups['dev'] or ansible_hostname in groups['test']
- name: create group opsmgr
group:
name: opsmgr
state: present
when: ansible_hostname in groups['pro']
- name:
user:
name: "{{ item.name }}"
groups: devops
password: "{{ pw_developer | password_hash('sha512') }}"
loop: "{{ users }}"
when: (ansible_hostname in groups['dev'] or ansible_hostname in groups['test'] ) and item.job == 'developer'
- name: create user for prod
user:
name: "{{ item.name }}"
groups: opsmgr
password: "{{ pw_manager | password_hash('sha512') }}"
loop: "{{ users }}"
when: ansible_hostname in groups['prod'] and item.job == 'manager'
3、为 Ansiblev ault 文件修改密码
请为 expense.yml 文件修改 vault 密码, 要求如下:
-
请将 files/15/expense.yml 文 件 保 存 到 ~/anstble/expense.yml
-
此文件当前的 vault 密码是: veryimportant
-
新的 vault 密码是: notveryimportant
[root@servera ansible]# cp ~/files/15/expense.yml .
[root@servera ansible]# ansible-vault rekey expense.yml
Vault password:
New Vault password:
Confirm New Vault password:
Rekey successful