这样讲解Ansible(ansible-vault)的加密与解密真6

本文详细介绍了如何使用Ansible Vault加密和管理playbook中的敏感信息,包括创建、查看、编辑、加密现有文件及运行playbook时的交互式和密码文件方式。学习如何确保部署文件的安全,提升运维效率。

🎹 个人简介:大家好,我是 金鱼哥,优快云运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL、PMP😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝



Ansible是很火的一个自动化部署工具,在ansible控制节点内,存放着当前环境服务的所有服务的配置信息,其中自然也包括一些敏感的信息,例如明文密码、IP地址等等。
从安全角度来讲,这些敏感数据的文件不应该以明文的形式存在。

Ansible官方已经考虑到了这种情况,当我们的playbook中含有不能明文展示的文本时,ansible通过命令行「ansible-vault」给你目标文件/字符串进行加密。在执行playbook时,通过指定相应参数来给目标文件解密,从而实现ansible vault的功能。

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

  • 主机/组变量等所有的变量文件
  • tasks、hanlders等所有的playbook文件
  • 命令行导入的文件(eg : -e @file.yaml ,-e @file.json)
  • copy,template的模块里src参数所使用的文件,甚至是二进制文件。
  • playbook里用到的某个字符串参数也可以加密(Ansible>=2.3)

image-20211207140953127

那究竟应该如何操作呢?先来看看命令上的常规操作:


📜1. 创建加密文件

ansible-vault create foo.yml

执行该命令后,交互式输入两次相同的密码,则创建加密文件成功


📜2. 使用密码文件创建

ansible-vault create --vault-password-file=vault-pass secret.yml

📜3. 给现有文件加密

ansible-vault encrypt foo.yml bar.yml baz.yml

📜4. 编辑加密文件

对加密过的文件进行编辑也是我们常遇到的,命令为:

ansible-vault edit foo.yml
# 这个命令会将该文件解密,并放到一个临时文件,编辑完后再保存到原文件。

📜5. 查看加密文件

有时我们不是想编辑文件,而是简单查看下文件内容,命令为:

ansible-vault view foo.yml bar.yml baz.yml
# 从示例中我们可以看出,一行命令可以查看多个加密文件。 

📜6. 更改密码

给加密文件更改密码,命令为:

ansible-vault rekey foo.yml bar.yml baz.yml
# 先交互式输入旧的密码,然后再交互式输入两次新密码,即更改密码成功。

📜7. 取消加密(解密)

取消加密的命令为:

ansible-vault decrypt foo.yml bar.yml baz.yml
# 交互式输入密码,即取消加密成功。

📜8. playbook与ansible vault

ansible执行playbook时,可以通过交互式或指定密码文件的方式来解密文件。

  • 交互式

    执行playbook时在终端以交互式的形式输入密码,示例:

    ansible-playbook --ask-vault-pass site.yaml
    
  • 指定密码文件

另外一种使用方式,是将密码放在某个文件内,执行playbook时,通过指定该密码文件进行解密。

可以使用「–vault-password-flie」参数:

ansible-playbook --vault-password-file=password site.yaml

image-20211207164725535

从ansible2.4版本开始,官方不再推荐使用”–vault-password-file”选项,官方开始推荐使用”–vault-id”选项代替”–vault-password-file”选项指定密码文件,也就是说,如下两条命令的效果是一样的。(推荐使用,不代表不能使用。_

ansible-vault decrypt --vault-id passwordfile site.yaml
ansible-vault decrypt --vault-password-file passwordfile site.yaml

官网地址:https://docs.ansible.com/ansible/2.9/user_guide/vault.html

image-20211207165212327


📜9. 练习演示

📑命令选项

[student@servera example]$ ansible-vault -h
usage: ansible-vault [-h] [--version] [-v]
                     {
   
   create,decrypt,edit,view,encrypt,encrypt_string,rekey}
                     ...

encryption/decryption utility for A
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT民工金鱼哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值