ansible-vault 只要用于配置文件加密,可以加密或解密,具体使用方式如下:
Usage: ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]
可以看到有很多子命令:
- create: 创建一个新文件,并直接对其进行加密
- decrypt: 解密文件
- edit: 用于编辑 ansible-vault 加密过的文件
- encrypy: 加密文件
- encrypt_strin: 加密字符串,字符串从命令行获取
- view: 查看经过加密的文件
加密文件
先自己创建一个文件,写入一些内容:
[root@Ansible ~]# echo "123456" > pass.txt
[root@Ansible ~]# cat pass.txt
123456
[root@Ansible ~]#
然后用 ansible-vault encrypt 加密文件:
[root@Ansible ~]# ansible-vault encrypt pass.txt
New Vault password:
Confirm New Vault password:
Encryption successful
[root@Ansible ~]#
这里会要求输入密码。
现在再去打开文件看看:
[root@Ansible ~]# cat pass.txt
$ANSIBLE_VAULT;1.1;AES256
62633762393035316438663662343964656465376634393131313466313536336361333163313238
6162356161653365623961353533356264386134653830640a353531623635653337636564383763
38316636383334323533363666383963666161633332663461316338333332623434376162326265
6565623130373539330a313737646431626131336637663033656664383932393934633337383666
6334
[root@Ansible ~]#
查看文件内容,可以用 ansible-vault view 命令:
[root@Ansible ~]# ansible-vault view pass.txt
Vault password:
123456
[root@Ansible ~]#
把文件还原可以用 ansible-vault decrypt 命令:
[root@Ansible ~]# ansible-vault decrypt pass.txt
Vault password:
Decryption successful
[root@Ansible ~]# cat pass.txt
123456
[root@Ansible ~]#
加密配置文件
上面的演示内容只是一个小工具的单独使用,这里看看结合ansible命令的使用。
在/etc/ansible/hosts文件中新加一台主机用于测试:
host1 ansible_host=127.0.0.1 ansible_connection=local
这里加的就是本机。
然后单独创建这台主机的变量文件 /etc/ansible/host_vars/host1 ,随便写入一些变量:
---
key1: vaule1
key2: VALUE2
先来验证一下:
[root@Ansible ~]# ansible host1 -a "echo key1={