【ansible】使用ansible-vault加密数/解密数据文件

一 、实验背景


众所周知,ansible是很火的一个自动化部署工具,在ansible控制节点内,存放着当前环境服务的所有服务的配置信息,其中自然也包括一些敏感的信息,例如明文密码、IP地址等等。

从安全角度来讲,这些敏感数据的文件不应该以明文的形式存在。此时就用到了ansible加密的特性。

ansible通过命令行「ansible-vault」给你目标文件/字符串进行加密。在执行playbook时,通过指定相应参数来给目标文件解密,从而实现ansible vault的功能。

ansible可以加密任何部署相关的文件数据,例如:

主机/组变量等所有的变量文件

tasks、hanlders等所有的playbook文件

命令行导入的文件(eg : -e @file.yaml  ,-e @file.json)

copy,template的模块里src参数所使用的文件,甚至是二进制文件。

playbook里用到的某个字符串参数也可以加密(Ansible>=2.3)


二、查看命令帮助和man手册


# yum  -y install  epel-release

# yum -y install ansbile 


# ansible-vault --help

# man ansible-vault > ansible-vault.md



三、一般使用


准备一个写有明文的文件

# echo "123456"   > /path/to/passwd.txt


读取密码加密hosts或者yml文件

# ansible-vault encrypt --vault-password-file /path/to/passwd.txt   /path/to/hosts

# ansible-vault encrypt --vault-password-file /path/to/passwd.txt   /path/to/install_X.yml


读取明文密码,解密文件

# ansible-vault decrypt --vault-password-file /path/to/passwd.txt   /path/to/hosts

# ansible-vault decrypt --vault-password-file /path/to/passwd.txt   /path/to/install_X.yml


如果不想先解密后执行,可以在执行安装命令前,读取密码文件,解密安装文件

# ansible-playbook -vault-password-file /path/to/passwd.txt /path/to/hosts install_X.yml


注意:用一个playbook只能用同一个明文密码加密,安装完成后正确地处理明文密码文件


四、参考

Ansible Vault

https://docs.ansible.com/ansible/latest/user_guide/vault.html


Ansible-vault doesn't work with --vault-password-file

https://stackoverflow.com/questions/42109626/ansible-vault-doesnt-work-with-vault-password-file



使用ansible-vault加密数据

https://www.colabug.com/5801314.html


ansible-vault加密和解密文件

https://www.cnblogs.com/nb-blog/p/10614946.html


朱双印 ansible-vault

http://www.zsythink.net/archives/3250


ansible基础:加密

https://mp.weixin.qq.com/s?__biz=MzUzMDc0MjgwNg%3D%3D&idx=1&mid=2247483753&sn=720a3aa215e6335657f7ff01c8f00b00

https://www.cnblogs.com/mauricewei/p/10056476.html


Docs » User Guide » Working With Playbooks » Best Practices

https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html


Ansible: How to encrypt some variables in an inventory file in a separate vault file?

https://stackoverflow.com/questions/30209062/ansible-how-to-encrypt-some-variables-in-an-inventory-file-in-a-separate-vault


How do I generate encrypted passwords for the user module?

https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-generate-crypted-passwords-for-the-user-module


Ansible添加用户,密码加密

https://www.zhukun.net/archives/8108


passlib.hash.sha512_crypt - SHA-512 Crypt

https://passlib.readthedocs.io/en/stable/lib/passlib.hash.sha512_crypt.html


Creating a new user and password with Ansible

https://stackoverflow.com/questions/19292899/creating-a-new-user-and-password-with-ansible


ansible-playbook设置java环境变量后不生效解决方法

https://blog.csdn.net/yushi6310/article/details/78683123


关于ansible远程执行的环境变量问题(login shell & nonlogin shelll)

https://blog.csdn.net/u010871982/article/details/78525367

你可能感兴趣的:(【ansible】使用ansible-vault加密数/解密数据文件)