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
包。
[student@workstation ansible]$ sudo yum install python-cryptography -y