运维
Tcpdump抓包工具
tshark抓包工具
Ansible
Ansible配置
Ansible-远程命令模块( command / script / shell )
Ansible-常用模块
PlayBook
PlayBook-变量
PlayBook-条件/循环
PlayBook-Tags
PlayBook-常用脚本
Ansible-Vault(数据安全)
Ansible-API
Ansible实践
JMeter测试软件
JMeter性能指标
Curl
综合分析工具
磁盘/IO工具
网络分析工具
JAVA分析工具
更换硬盘
Linux启动流程
安装问题
GURB加密
修改默认启动项
Root密码忘记
重装内核、GRUB
Too many open files错误
误删文件,内存恢复
Read-only file system错误
本文档使用MrDoc发布
返回首页
-
+
Ansible-Vault(数据安全)
2022年2月21日 10:01
admin
#加密算法 ###AES AES采用对称分组密码体制,密钥长度的最少支持为128、192、256位,分组长度128位,算法应易于各种硬件和软件实现。Ansible使用的AES是256位最长密钥长度。 --- #作用 管理加密/解密yml(palybook)文件工具 有时编写的playbook文件中会存在重要信息,考虑到安全,可以使用此工具进行加密! --- #一、使用Ansible-Vault命令 ansible-vault [选项] <yml文件> ##选项 |参数|说明| |--|-- |create|使用编辑器创建加密文件。默认使用vi,指定编辑器需要在运行之前先配置编辑器的环境变量,export EDITOR=vim |decrypt|接密文件。使用这个命令要小心,不要把解密后的文件提交到版本控制系统中 |edit|编辑加密文件,在内存中解密,退出编辑器后又保存成加密文件 |encrypt|加密一个已有的机构化数据文件 |encrypt_string|加密指定"字符串",并不加密整个文件 |rekey|修改用于加密、解密的口令 |view|查看加密文件 | --- ##1、加密 ansible-vault encrypt hello.yml ![](/media//202202/2022-02-21095935759756.png) --- ##2、加密指定字符串 ansible-vault encrypt_string 123456 --- #查看加密前的文件内容 #cat test.yml - hosts: test71 vars: test_user: "testuser" test_passwd: "123456" tasks: - debug: msg: "{{test_user}}" - debug: msg: "{{test_passwd}}" #查看加密后的文件内容 #cat test.yml - hosts: test71 vars: test_user: "testuser" test_passwd: !vault | $ANSIBLE_VAULT;1.1;AES256 30316633646364663764333666383437373439353538353336623532323131623739353663653637 3430626637386231366236643034643365323738336231330a326534623039363030393739663237 65623635616666656233333337636439366535383334393138623231613035373133323832383335 3737386234363761350a343839326663626664396436336465393862613237393864316533663533 6335 tasks: - debug: msg: "{{test_user}}" - debug: msg: "{{test_passwd}}" --- ##3、解密 ansible-vault decrypt hello.yml ![](/media//202202/2022-02-21095956074795.png) --- ##4、查看加密文件 ansible-vault view hello.yml ![](/media//202202/2022-02-21100019863370.png) --- ##5、编辑加密文件 ansible-vault edit hello.yml ![](/media//202202/2022-02-21100041330153.png) --- ##6、更改旧密码 ansible-vault rekey hello.yml ![](/media//202202/2022-02-21100103873885.png) --- ##7、创建一个新的playbook文件 ansible-vault create hello.yml ![](/media//202202/2022-02-21100123080799.png) --- ##注意:指定编辑器(create、edit) ####需要在使用以上create、edit命令前定义系统变量 export EDITOR=vim --- #二、使用Ansible-Vault加密文件 ####vault-password-file <pwdfile> "--vault-password-file <pwdfile>"选项,来指定加密所需的密码文件 ####ask-vault-pass "--ask-vault-pass"选项,在运行加密的剧本时输入对应的密码 ####vault-id 从ansible2.4版本开始,可使用"--vault-id"选项代替上述两者功能 --vault-id prompt == --ask-vault-pass --vault-id <pwdfile> == --vault-password-file <pwdfile> --- #三、使用示例 ####加密前文件 # cat test.yml - hosts: test70 tasks: - debug: msg: "Test ansible-vault" ####加密 ansible-vault encrypt test.yml ####加密后文件 # cat test.yml $ANSIBLE_VAULT;1.1;AES256 64323634303535336563333064663033393037316462363334656334396562643736663839386464 3062373266626165306238613264633230623837633436660a356638633436313332643735613335 31333935336437633064323761613632396631643334363730663131656661613063333265363838 3139306532613739660a386130346232656132366330383131323637613533323733646437366331 63663939396234376362336164663665326162323262313139383364373038636562306163636362 33396434663731356239303162656466343031316161346166373037666130353831393261313530 31646366353836303439323738323032306164623338346433323433623538353863633563633266 34313334623637336535 ####直接执行报错 ansible-playbook test.yml ERROR! Attempting to decrypt but no vault secrets found --- ##1、使用ask-vault-pass执行 ansible-playbook --ask-vault-pass test.yml 或者 ansible-playbook --vault-id test.yml --- ##2、使用vault-password-file执行 #首先,创建密码文件: echo "123123" > pwdfile #使用这个密码文件加密对应的playbook ansible-vault encrypt --vault-password-file pwdfile test.yml 或者 ansible-vault encrypt --vault-id pwdfile test.yml #使用这个密码文件执行对应的playbook ansible-playbook --vault-password-file pwdfile test.yml 或者 ansible-playbook --vault-id pwdfile test.yml --- #注意: ###ansible-vault可以直接加密变量文件,playbook引用到加密变量文件的变量,都需要使用上述三个命令来执行。
分享到: