1.加密类型
encrypt(加密)、decrypt(解密)、view(查看),rekey(重置密码)
2.加密敏感数据
案例
echo 123456 > data.txt #新建测试文件 ansible-vault encrypt data.txt #加密文件 cat data.txt ansible-vault view data.txt #查看加密文件
3.修改密码(rekey)
案例
//验证剧本
4.解密文件
案例
ansible-vault decrypt data.txt #解密文件 cat data.txt
5.使用密码文件
加密、解密每次都输入密码很麻烦,可以将密码写入文件
echo "I'm secret data" > data.txt #需要加密的敏感数据 echo 123456 > pass.txt #加密的密码 ansible-vault encrypt --vault-id=pass.txt data.txt cat data.txt ansible-vault decrypt --vault-id=pass.txt data.txt cat data.txt
6.ansible使用密码真实案例
创建保险库钥匙文件 echo 'kali_yao' > secret.txt 创建保险库文件 ansible-vault create passdb.yml --vault-password-file=secret.txt pw_dev: yao123 pw_man: kali123 vim name_list.yml users: - name: tom #用户岗位 a job: dev - name: jerry #用户岗位 b job: man vim users.yml - name: batch users hosts: test,webtest,web vars_files: - passdb.yml //加载密码变量 - name_list.yml //加载用户名变量 tasks: - group: name: kali //确保补充组 1 在指定主机已存在 - group: name: yao //确保补充组 2 在指定主机已存在 - user: name: {{item.name}} password: {{pw_dev|password_hash('sha512')}} groups=kali when: (item.job == 'dev') and ('test' in group_names or 'webtest' in group_names) loop: "{{users}}" //按条件添加 a 岗用户 - user: name: {{item.name}} password:{{pw_man|password_hash('sha512')}} groups: yao when: (item.job == 'man') and ('web' in group_names) loop: "{{users}}" //按条件添加 b 岗用户
ansible-playbook users.yml --vault-password-file=/home/alice/ansible/secret.txt //验证剧本