Ansible之管理机密与事实

1. 管理机密

  • 目标:使用ansible vault加密敏感变量,并运行vault加密变量文件的playbook
  • ansible vault :ansible可能需要访问密码或者api密钥等敏感数据,以便配置主机。
  • 加密解密工具:ansible-vault命令

注:ansible vault不实施自有的加密函数,而使用外部python工具集

1.1 创建加密文件

方法:

ansible-vault create filename 

需要输入密码

创建加密文件同时将密码保存,密码文件中必须先写入密码

1.2 查看加密文件

方法:

ansible-vault view filename 

1.3 编辑现有的加密文件

原理:将文件解密为一个临时文件,并编辑;保存时,复制内容并删除临时文件

注:edit命令始终重写文件,因此只有在更改文件时使用,查看尽量使用view

1.4 加密现有的文件

方法:

ansible-vault encrypt filename #filename参数可以是多个 

可以使用--output=filename将加密文件保存为新的名称,使用此参数时输入文件只能是一个  

1.5 解密现有的文件

方法:

ansible-vault decrypt filename 

1.6 更改加密文件密码

方法:

ansible-vault rekey filename

'可以一次更新多个文件密码'

使用vault密码文件时,最好使用--net-vault-password-file

playbook和ansible vault

运行加密的playbook,没有密码则报错

交互式提供密码

注:2.4版本之前的ansible,使用--ask-vault-pass提供交互式密码

也可以将密码存在文件中(注意使用文件系统权限对文件进行保护)

2. 管理事实 

事实包括:

主机名称、内核版本、网络借口、IP地址等

2.1 描述ansible事实

查看主机信息

ansible-playbook fact.yml 

 

再将事实替换为动态的值

 

ansible事实作为变量注入

使用setup模块显示所有事实信息

ansible server1.huayu.com -m setup

关闭事实收集,开提升执行速度

[root@workstation~]#cat user.yml

运行

2.2 创建自定义事实

可以使用INI格式或者JSON格式

INI格式

JSON格式

自定义格式不能使用ymal格式,使用最为接近的json最好

[root@workstation~]#mkdir /etc/ansible/facts.d

vim custom.fact #必须以.fact结尾 

 

ansible localhost -m setup


注:自定义事实的使用方式和默认事实相同

使用魔法变量

常用的有四个:

  • hostvars #包含受管主机的变量,可以用于获取另一台受管主机的变量的值
  • group_names #列出当前受管主机所属的所有组
  • groups #列出清单中的所有组和主机
  • inventory_hostname#包含清单中配置的当前受管主机的主机名称

用途之一:使用debug模块报告特定主机的hostvars的值

 

 

运行

[root@workstationdata-facts]#ansible-playbook playbook.yml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值