文章目录

  • ansible-vault
  • 加密新文件
  • 加密文件的查看
  • 对加密码文件的编辑
  • 加密现有文件
  • 对加密文件进行解密:
  • 在解密的同时修改文件名
  • 加密文件密码的修改



当playbook中的服务配置文件中含有密码等敏感信息时,一般会对其进行加密。


加密工具:ansible-voault


当playbook被加密后无密码无法执行!

ansible-vault

加密新文件

使用ansible-vault creat 目标文件对即将新建的文件进行加密:

ansible-vault creat test1.yml ##对test1.yul进行加密

ansible命令python ansible命令行设置密码_linux


输入密码后进行编辑:

ansible命令python ansible命令行设置密码_文件名_02


编辑完成后,保存退出。此时使用cat命令去查看加密文件,无法访问其内容:

ansible命令python ansible命令行设置密码_ansible命令python_03


如果我们需要加密的文件过多,会非常容易记错密码。可以在加密的同时将密码保存到一个文件中:

首先创建存放密码的文件:passfile

ansible命令python ansible命令行设置密码_linux_04


使用命令:ansible-vault creat - -vault-password-file=密码存放文件 加密文件对加密文件使用密码存放文件内的密码:

ansible-vault creat - -vault-password-file=passfile test2.yml ##使用passfile中的密码对test2.yml进行加密

test2.yml内容:

ansible命令python ansible命令行设置密码_apache_05


接着存放密码的文件进行相关权限设置以确保其安全。

加密文件的查看

使用命令ansible-vault view 解密文件对加密文件进行解密:
对刚才加密的test1.yml文件进行查看:

ansible-vault  view test1.yml

ansible命令python ansible命令行设置密码_ansible命令python_06


输入密码后成功访问到文件内容。

对刚才加密的test2.yml进行查看:

ansible-vault  view test1.yml

ansible命令python ansible命令行设置密码_临时文件_07


成功访问到其内容!

对加密码文件的编辑

当我们使用vim命令对加密文件进行修改的时候,会这样:

ansible命令python ansible命令行设置密码_文件名_08


如果直接对此进行编辑修改。则会出现持有密码无法访问及编辑该文件:

ansible命令python ansible命令行设置密码_文件名_09


ansible命令python ansible命令行设置密码_文件名_10

现将刚才的改动删除:

ansible命令python ansible命令行设置密码_apache_11


就可以正常进行查看及编辑:

ansible命令python ansible命令行设置密码_ansible命令python_12


加密文件的编辑方法:

使用命令:ansible-playbook edit 要编辑的文件

对加密过的test1.yml进行编辑:

ansible-playbook edit test1.yml

输入完密码后进行编辑:

ansible命令python ansible命令行设置密码_linux_13


但是我们发现在编辑的时候打开的文件并不是我们的原文件:

ansible命令python ansible命令行设置密码_文件名_14

  • 加密文件修改原理:
    我们进行编辑时打开的为一个临时文件,当编辑完成保存时,系统会复制这个临时文件到原文件并删除临时文件。

编辑如下:

ansible命令python ansible命令行设置密码_文件名_15


对其进行查看:

ansible命令python ansible命令行设置密码_临时文件_16


编辑成功!

加密现有文件

方法:

ansible-vault encrypt 加密文件1 加密文件2 加密文件3....

对现有的apache.yml进行加密(可以一次加密多个文件);

ansible-vault encrypt apache.yml

ansible命令python ansible命令行设置密码_文件名_17


当playbook加密后是无法执行的:

ansible命令python ansible命令行设置密码_apache_18

使用命令ansible-playbook  - -vault-id  @prompt 加密的playbook文件

ansible命令python ansible命令行设置密码_ansible命令python_19


加密playbook成功执行。

对加密文件进行解密:

使用命令ansible-vault decrypt 解密文件对已经加密过的文件进行解密:

解密test1.yml:

ansible-vault decrypt test1.yml

ansible命令python ansible命令行设置密码_apache_20


输入密码后,解密成功!

在解密的同时修改文件名

使用命令:ansuble-vault decrypt 解密文件 - -output=新文件名

给test2.yml解密并修改文件名为xng.yml

ansible-vault  decrypt  test2.yml - -output=xng.yml

ansible命令python ansible命令行设置密码_apache_21

加密文件密码的修改

使用ansible-vault rekey 需要改密的文件名 修改apache.yml的密码:

ansible-vault rekey apache.yml

ansible命令python ansible命令行设置密码_linux_22


首先输入旧密码,再输入新密码,确认后密码修改成功。