12-vault

2020-01-14 17:51:33 浏览数 (1)

Vault加密

创建

需求: 要求使用ansible创建一个名为private.yml加密文件

代码语言:txt复制
[student@workstation ansible]$ ansible-vault create private.yml

提示输入密码并确认

代码语言:txt复制
New Vault password: pqowitalskg
Confirm New Vault password: pqowitalskg

查看

交互式输入密码

代码语言:txt复制
[student@workstation ansible]$ ansible-vault view private.yml

提示输入密码

代码语言:txt复制
Vault password: pqowitalskg

非交互式输入密码

方法1

把密码存到一个文件里面

代码语言:txt复制
[student@workstation ansible]$ echo ‘pqowitalskg’ > secret.txt

查看的时候使用--vault-password-file参数跟上密码文件

代码语言:txt复制
[student@workstation ansible]$ ansible-vault view private.yml --vault-password-file=secret.txt
方法2

在ansible.cfg中指定密码文件

代码语言:txt复制
[student@workstation ansible]$ vim ansible.cfg
[defaults]
vault_password_file=/home/student/ansible/secret.txt

直接查看,不要输入密码也不需要跟上密码文件参数

代码语言:txt复制
[student@workstation ansible]$ ansible-vault view private.yml

重置

默认情况下是直接找配置文件里的面,如果配置文件里面的密码与当前加密文件的密码不匹配,会导致解密失败

可以使用--ask-vault-pass,来提示输入当前密码

代码语言:txt复制
[student@workstation ansible]$ ansible-vault rekey up_install.yml --ask-vault-pass
提示输入当前密码
Vault password: 

输入新密码并且确认
New Vault password: 
Confirm New Vault password: 

编辑

编辑一个现有的加密yml文件

代码语言:txt复制
[student@workstation ansible]$ ansible-vault edit up_install.yml --ask-vault-pass

加密

加密一个现有文件

代码语言:txt复制
[student@workstation ansible]$ ansible-vault encrypt phpinfo.yml --ask-vault-pass

加密一个现有文件,源文件不更改,加密的数据输出到一个新的文件中

代码语言:txt复制
[student@workstation ansible]$ ansible-vault encrypt balancer.yml  --output=se_balancer.yml

加密一个字符串

代码语言:txt复制
[student@workstation ansible]$ ansible-vault encrypt_string "shenqi" --ask-vault-pass

解密

解密yml文件

代码语言:txt复制
[student@workstation ansible]$ ansible-vault decrypt se_phpinfo.yml --ask-vault-pass

同样的也可以输出到一个新文件中

代码语言:txt复制
--output=balancer.yml

提速

默认,Ansible使用python-crypto包提供的工具加密和解密文件。

如果有很多加密的文件需要解密,那么解密开始时候会有延迟,为了解决这个问题,安装python-cryptography包。

代码语言:txt复制
[student@workstation ansible]$ sudo yum install python-cryptography -y

0 人点赞