ansible 加密

原创 2018年04月16日 21:29:45

当我们使用ansible完全自动化地运维服务器的是时候,运行某些任务时,不可避免的会接触到一些密码或其他敏感数据,这些数据可能是管理员密码/SSH私钥或远程主机的认证信息。
大部分情况下,ansible自带的vault功能能满足加密的需求。
ansible vault的工作方式与现实生活中的保险柜的工作方法很像:
1. 把ansible任务中用到的任意文件放入vault保险柜中
2. ansible vault 会使用密码来加密这些文件,与用钥匙把保险柜的门锁起来一样
3. 把密码(钥匙)保存在一个只有我们自己知道或有权限访问的地方,与playbook独立分开存储
4. 在需要运行playbook的时候,拿出密码(钥匙),解密敏感数据(打开保险柜,拿出数据),就能正常执行playbook任务了

1. 文件加密

文件:

wfq@ubuntu:~/playbook$ cat key.yml
---
test
wfq@ubuntu:~/playbook$

加密:

wfq@ubuntu:~/playbook$ ansible-vault encrypt key.yml 
Vault password: 
Confirm Vault password: 
Encryption successful
wfq@ubuntu:~/playbook$ cat key.yml 
$ANSIBLE_VAULT;1.1;AES256
31363436356265643434363066376538626131346534353061356636633739623030336230343261
6361643530666336343336383466323233353932626437620a646337376232363134636536653933
61666638393939633134393031373665323766646166323361363033346432343063333633353231
6338363864333632380a306137383532343337663939336464636630313535303662323732363135
3461
wfq@ubuntu:~/playbook$

2. 解密:

2.1. 手动解密

wfq@ubuntu:~/playbook$ ansible-vault decrypt key.yml 
Vault password: 
Decryption successful
wfq@ubuntu:~/playbook$ cat key.yml 
---
test
wfq@ubuntu:~/playbook$

2.2. 文件解密

除了手动输入密码进行解密以外,ansible还提供了以密码文件的形式来解密的认证方式,着类似SSH的密钥认证。SSH将密钥放于~/.ssh目录下面,ansible vault将密码文件放置于~/.ansible,对于这个文件必须要有严格的权限控制,需设置权限为600.
例如:
需要加密的敏感数据:

wfq@ubuntu:~/playbook$ cat key.yml 
---
test
wfq@ubuntu:~/playbook$

加密的密码保存在~/.ansible/vault_pass,密码为test

wfq@ubuntu:~/playbook$ echo 'test' >  ~/.ansible/vault_pass

加密

wfq@ubuntu:~/playbook$ ansible-vault encrypt key.yml
Vault password: 
Confirm Vault password: 
Encryption successful

查看加密过的文件

wfq@ubuntu:~/playbook$ cat key.yml                  
$ANSIBLE_VAULT;1.1;AES256
39393130653534313334313061653839643764336633333963393565343564633536316664626162
3836396265663466333635393139323239666237373738300a646566383534653863613639336239
30366137363230346339623761623962353565383861373866346532383135333134613166656363
6232623936613830640a633737663038396263333331373265653361313638366434363733393839
3932
wfq@ubuntu:~/playbook$

通过密码文件来解密

ansible-vault decrypt key.yml --vault-password-file ~/.ansible/vault_pass
wfq@ubuntu:~/playbook$ ansible-vault decrypt key.yml --vault-password-file ~/.ansible/vault_pass
Decryption successful
wfq@ubuntu:~/playbook$ cat key.yml 
---
test
wfq@ubuntu:~/playbook$
注:

ansible vault采用AES-256加密算法对文件进行加密,这种加密算法极为安全。使用目前世界上运算速度最快的集群来7*24小时解密一个通过该算法加密的文件,也需要数十亿年的时间才能完成破解。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wang725/article/details/79966934

ansible配置private key来免密码登录

最近在作自动化部署发布.读了一下ansible的代码和工作流. 需要部署一些免密码登录的操作. 记录下 现在有两台机器, 一台服务器A安装了ansible, 一台是服务器B需要被操作的. 随便建...
  • rainysia
  • rainysia
  • 2015年11月04日 00:31
  • 17835

实例学习ansible系列(11)常用模块之get_url/cron/synchronize

知识点:cron模块用于管理对象节点cron任务 知识点:get_url模块类似于wget和curl的功能,可以进行下载以及webapi交互等操作...
  • liumiaocn
  • liumiaocn
  • 2016年07月31日 07:48
  • 3637

Ansible基本部署&&常用模块

1、简介 ansible是什么?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具;其目标是:自动化部署APP;自动化管理配置项;自动化的持...
  • Celeste7777
  • Celeste7777
  • 2015年09月23日 15:05
  • 3533

ansible工作原理以及使用详解

内容: 1、ansible的作用以及工作结构 2、ansible的安装以及使用 3、ansible的playbook使用 一、ansible的作用以及工作结构         1、a...
  • Allison_ywt
  • Allison_ywt
  • 2017年09月15日 10:56
  • 1440

对安装ansible无语的做法就是卸载重新装 哭哭哭

ansible安装过程一直在各种错误中度过  整体两天下来  采用最多的是这个连接的 yum的安装(http://www.361way.com/ansible-install/4371.html),期...
  • zhiqikaozijizhengqu
  • zhiqikaozijizhengqu
  • 2016年10月27日 19:38
  • 1102

Ansible入门简介

Ansible简介Ansible基于Python语言实现,由paramiko和PyYAML两个关键模块构建。Ansible的编排引擎可以出色地完成配置管理,流程控制,资源部署等多方面工作。ansibl...
  • minxihou
  • minxihou
  • 2016年12月01日 16:21
  • 2687

ansible搭建详解(可行)

ansible(一)--基本安装使用 ansible(一)——基本安装使用 单位用的ansible,也用了salt,当然也用了puppet,所以自动化管理工具,基本上几...
  • u010098331
  • u010098331
  • 2016年11月18日 18:47
  • 2772

ansible命令执行模块使用

ansible命令执行模块使用
  • kellyseeme
  • kellyseeme
  • 2016年01月21日 10:49
  • 21480

ansible常用模块用法

ansible 默认提供了很多模块来供我们使用。在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s  ...
  • iloveyin
  • iloveyin
  • 2015年07月21日 10:25
  • 43966

ansible高级用法

ansible高级用法
  • ggz631047367
  • ggz631047367
  • 2015年12月19日 17:52
  • 1301
收藏助手
不良信息举报
您举报文章:ansible 加密
举报原因:
原因补充:

(最多只允许输入30个字)