文章目录
- ansible-vault
- 加密新文件
- 加密文件的查看
- 对加密码文件的编辑
- 加密现有文件
- 对加密文件进行解密:
- 在解密的同时修改文件名
- 加密文件密码的修改
当playbook中的服务配置文件中含有密码等敏感信息时,一般会对其进行加密。
加密工具:ansible-voault
当playbook被加密后无密码无法执行!
ansible-vault
加密新文件
使用ansible-vault creat 目标文件
对即将新建的文件进行加密:
ansible-vault creat test1.yml ##对test1.yul进行加密
输入密码后进行编辑:
编辑完成后,保存退出。此时使用cat命令去查看加密文件,无法访问其内容:
如果我们需要加密的文件过多,会非常容易记错密码。可以在加密的同时将密码保存到一个文件中:
首先创建存放密码的文件:passfile
使用命令:ansible-vault creat - -vault-password-file=密码存放文件 加密文件
对加密文件使用密码存放文件内的密码:
ansible-vault creat - -vault-password-file=passfile test2.yml ##使用passfile中的密码对test2.yml进行加密
test2.yml内容:
接着存放密码的文件进行相关权限设置以确保其安全。
加密文件的查看
使用命令ansible-vault view 解密文件
对加密文件进行解密:
对刚才加密的test1.yml文件进行查看:
ansible-vault view test1.yml
输入密码后成功访问到文件内容。
对刚才加密的test2.yml进行查看:
ansible-vault view test1.yml
成功访问到其内容!
对加密码文件的编辑
当我们使用vim命令对加密文件进行修改的时候,会这样:
如果直接对此进行编辑修改。则会出现持有密码无法访问及编辑该文件:
现将刚才的改动删除:
就可以正常进行查看及编辑:
加密文件的编辑方法:
使用命令:ansible-playbook edit 要编辑的文件
:
对加密过的test1.yml进行编辑:
ansible-playbook edit test1.yml
输入完密码后进行编辑:
但是我们发现在编辑的时候打开的文件并不是我们的原文件:
- 加密文件修改原理:
我们进行编辑时打开的为一个临时文件,当编辑完成保存时,系统会复制这个临时文件到原文件并删除临时文件。
编辑如下:
对其进行查看:
编辑成功!
加密现有文件
方法:
ansible-vault encrypt 加密文件1 加密文件2 加密文件3....
对现有的apache.yml进行加密(可以一次加密多个文件);
ansible-vault encrypt apache.yml
当playbook加密后是无法执行的:
使用命令ansible-playbook - -vault-id @prompt 加密的playbook文件
加密playbook成功执行。
对加密文件进行解密:
使用命令ansible-vault decrypt 解密文件
对已经加密过的文件进行解密:
解密test1.yml:
ansible-vault decrypt test1.yml
输入密码后,解密成功!
在解密的同时修改文件名
使用命令:ansuble-vault decrypt 解密文件 - -output=新文件名
给test2.yml解密并修改文件名为xng.yml
ansible-vault decrypt test2.yml - -output=xng.yml
加密文件密码的修改
使用ansible-vault rekey 需要改密的文件名
修改apache.yml的密码:
ansible-vault rekey apache.yml
首先输入旧密码,再输入新密码,确认后密码修改成功。