1、创建一个名为 locker.yml 的 ansible vault 文件存储用户密码:
Vault 文件中包含两个变量:
pw_developer: imadev
pw_manager: imamgr
加密此文件的密码为redhat
此密码存放在:~/ansible/secret.txt
echo redhat > ~/ansible/secret.txt
chmod 600 ~/ansible/secret.txt
cd ~/ansible
#创建加密yml文件,并且指定密码文件位置
ansible-vault create --vault-password-file=secret.txt locker.yml
pw_developer: imadev
pw_manager: imamgr
#查看我们刚刚是否添加成功
ansible-vault view locker.yml
2、创建用户账户
创建的用户账户清单user_list.yml
配合上一题的locler.yml,创建名为users.yml的playbook,要求如下:
■ 用户的 job description 为 developer 的用户, 创建到 dev和test 主机组中,用户密码来自pw_developer变用量,用户的附加组是devops
■ 用户的 job description 为 manager 的用户,创建到 prod 主机组中,用户密码来自pw_manager变量,用户附加组是opsmgr
■ 用户密码使用 SHA512 hash
cd ~/ansible
这里先创建用户账户清单,yml文件要严格注意格式,不能多一个空格
vim user_list.yml
users:
- name: bob
job: developer
- name: sally
job: manager
- name: fred
job: developer
接下来创建我们的清单文件
vim inventory
[dev]
serverb
[test]
serverc
[prod]
serverd
[all:vars]
ansible_ssh_private_key_file="/root/.ssh/key"
创建配置文件
vim ansible.cfg
[defaults]
inventory = ./inventory
remote_user = root
ask_pass = false
编写playbook
---
- name: user add
hosts: dev,test
vars_files:
- locker.yml
- user_list.yml
tasks:
- name: add devops group
group:
name: devops
state: present
- name: dev and test useradd
user:
name: "{{ item.name }}"
groups: devops
password: "{{ pw_developer | password_hash('sha512') }}"
loop: "{{ users }}"
when: item.job == 'developer'
- name: create manager
hosts: prod
vars_files:
- locker.yml
- user_list.yml
tasks:
- name: add opsmgr group
group:
name: opsmgr
state: present
- name: prod useradd
user:
name: "{{ item.name }}"
groups: opsmgr
password: "{{ pw_manager | password_hash('sha512') }}"
loop: "{{ users }}"
when: item.job == 'manager'
#执行playbook
ansible-playbook users.yml --vault-password=secret.txt
对我们刚刚的playbook执行结果进行
3、为 Ansiblev ault 文件修改密码
请为~/anstble/expense.yml 添加密码密码为: veryimportant
然后修改密码为:notveryimportant
cd ~/anxible
#创建expense.yml
vim expense.yml
name: bob
#对这个文件进行加密
echo veryimportant > pass.txt
#使用加密文件加密现有yml
ansible-vault encrypt --vault-id pass.txt expense.yml
#更改加密密码
ansible-vault rekey expense.yml
Vault password: 旧密码
New Vault password: 新密码
Confirm New Vault password:新密码
Rekey successful 修改成功