配置剧本加密.note

noteId: WEBad5942081543845c2c0d64cf211ec53c · 原始路径:/ALL/Ansible 自动化管理/Ansible 配置合集/配置剧本加密.note · 图片:17 · 附件待处理:0

 
一、加密整个文件:
 
1、先正常配置 ansible提权文件、剧本:
 
2、配置加密文件,并在 ansible.cfg 中调用:
(1)创建加密文件:
密码建议自定义一个,而不是和题目密码一样,因为有时评分时可能会直接 grep 过滤密码
cd /etc/ansible
touch .vault    //可以存放在ansible目录下,这样方便ansible读取(不加‘.’,不是隐藏文件也可以)
vim .vault
# 直接输入密码即可
 
 
(2)ansible.cfg 中调用:
指定之后就能够自动读取文件进行加解密,而无需每次都需要手动输入密码
vim /etc/ansible/ansible.cfg
# 可以在 ansibel-config init 中照抄配置
 
3、加密 敏感文件:
ansible-vault encrypt group_vars/all.yml
ansible-vault encrypt initialization.yml
# ansible-vault -h //能够查看到该参数
 
 
4、编辑加密文件:
# 需要使用命令进行编辑:
ansible-vault edit initialization.yml
 
# 无法直接进行编辑,只能够看到一堆乱码:
vim initialization.yml
 
 
5、加密后的文件可以直接运行,没有影响:
因为在 ansible.cfg 中定义了密码文件,可以直接进行调用
 
 
6、解密 加密过的文件:
ansible-vault decrypt initialization.yml
 
 
 
二、仅加密部分隐私数据(密码等):
 
1、创建加密文件:
cd /etc/ansible
touch .vault
echo abcd > .vault
 
2、生成加密字段,并输出到 all.yml 中:
例如要加密的密码为:Skills39
ansible-vault encrypt_string --vault-password-file /etc/ansible/.vault 'Skills39' --name 'ansible_password' >> group_vars/all.yml
 
# 格式:
ansible-vault encrypt_string --vault-password-file [用来加密的文件] [要被加密的字段] [生成后的变量名]
 
vim group_vars/all.yml
# 将其设置为 ansible_password 和 ansible_become_password即可
 
 
3、在 ansible.cfg 文件中调用密码文件:
vim ansible.cfg
如果这里不调用密码文件,那么就无法正常运行ansible
 
如果这里已经调用了密码文件,再执行上面的ansible-vault命令,就不需要指定 --vault-password-file 调用密码文件了了,直接执行加密即可:
ansible-vault encrypt_string 'Skills39' --name 'ansible_password' --encrypt-vault-id default
 
 
·然后就可以正常执行ansible了,此时配置文件中已经没有明文密码存在了:
 
 
 
三、综合实践:
 
 
1、创建加密文件:
cd /etc/ansible
touch .vault
echo abcd > .vault
 
2、生成加密字段,并输出到 all.yml 中:
例如要加密的密码为:Skills39
这个命令不用背,敲 -h 或者 --help 都能查出来
ansible-vault encrypt_string --vault-password-file /etc/ansible/.vault 'Skills39' --name 'ansible_password' >> group_vars/all.yml
 
# 格式:
ansible-vault encrypt_string --vault-password-file [用来加密的文件] [要被加密的字段] [生成后的变量名]
 
vim group_vars/all.yml
# 将其设置为 ansible_password 和 ansible_become_password即可
 
 
3、在 ansible.cfg 文件中调用密码文件:
vim ansible.cfg
 
 
4、加密剧本:
# 因为上面 ansible.cfg 调用了密码文件,所以这里就不需要指定 --vault-password-file 密码文件
ansible-vault encrypt 0-install.yml
ansible-vault encrypt [剧本名称]
剧本加密后也可以直接 ansible-playbook执行
 
5、查看、编辑、解密剧本:
# 查看:
ansible-vault view 0-install.yml
 
# 编辑:
ansible-vault edit 0-install.yml
 
# 解密:
ansible-vault decrypt 0-install.yml