ansible中的变量及加密

playbook
1、playbook的功能
playbook是一个由一个或多个play组成的列表
playbook文件使用YAML来写的

2、YAML
简介
是一种表达资料序列的格式,类似于XML

特点:
可读性好
和脚本语言交互性好
易于实现
适用程序执行流梳理方式
可扩展性强

语法简介:
在文件中用[—]开始
在文件中用[…]结束
次行一般书写文件内容
缩进严格,两个缩进
大小写敏感
key/value可以多行书写也可一行书写,一行书写用,隔开
value可以是个字符串,也可是list
一个play需要包括name和tasks
name是描述
tasks是动作
一个name只能包含一个task
扩展名称yml或者yaml

YAML列表

  • linux
  • java

YAML的字典
字典作用存放键值
name: westos
age: 12
jobs: linux

playbook执行命令
ansible-playbook xxx.yml …
-C|–check #预执行,检测
–syntax-check #检测语法
–list-hosts #检测运行命令的主机
–limit 192.168.1.113 #指定运行的主机
-v #检测实行的过程
#最多三个v
在这里插入图片描述
ansible-playbook -C test.yml
在这里插入图片描述
ansible-playbook --syntax-check test.yml
ansible-playbook --list-hosts test.yml
在这里插入图片描述
ansible-playbook --list-tags test.yml
在这里插入图片描述
ansible-playbook --list-tasks test.yml
在这里插入图片描述

ansible-playbook --limit 192.168.1.113 test.yml
在这里插入图片描述
ansible-playbook test.yml -v
在这里插入图片描述
在这里插入图片描述
ansible-playbook test.yml -vv
在这里插入图片描述

playbook的核心组件
name #可选,建议使用多用于说明
hosts #受控主机列表
tasks #任务
#用于选择执行部分代码

vim设定技巧
autocmd FileType yml setlocal ai ts=2 sw=2 et
#设定后缀为yml的文件tab键缩进两个空格

setlocal #设定当前文件
ai #自动退格对齐
ts #tab键长度为2空格
sw #缩进长度为2
et #把tab键变成空格
在这里插入图片描述
ansible-doc firewalld | less #查看firewalld用法

例题:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
name.conf文件
在这里插入图片描述
在这里插入图片描述
named.rfc1912.zones文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、变量设定和使用方式

1)在playbook中直接定义变量
在这里插入图片描述
在这里插入图片描述

2)在文件中定义变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)设定主机变量和清单变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4)目录设定变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6)使用命令覆盖变量
ansible-playbook test.yml -e “NAME=westos”
在这里插入图片描述

7)使用数组设定变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8)注册变量
register把模块输出注册到指定字符中
在这里插入图片描述
在这里插入图片描述

9)事实变量
事实变量是ansible在受控主机中自动检测出的变量
事实变量中还有与主机相关的信息

当需要使用主机相关信息时不需要采集赋值,直接调用即可
因为变量信息为系统信息所以不能随意设定为采集信息,故被成为事实变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

gether_father: no #在playbook中关闭事实变量
#注意:关闭后事实变量取值可能不正确
在这里插入图片描述
在这里插入图片描述
10)魔法变量
hostvars: #ansible软件内部信息

group_names #当前受管主机所在组
groups #列出清单里面所有的组和主机
inventory_hostname #包含清单中配置的当前受管主机的名称

ansible localhost -m debug -a ‘var=hostvars’
在这里插入图片描述
ansible localhost -m debug -a ‘var=group_names’
ansible localhost -m debug -a ‘var=inventory_hostname’
在这里插入图片描述
JINJA2模板
介绍:
jinja2是python下一个被广泛应用的模板引擎
他的设计思想来源于Django的模板引擎
并扩展了其语法和一系列强大的功能
其中最明显的一个是增加了沙箱执行功能和可选的自动转义功能

j2模板书写规则

{# /etc/hosts line #}	#注释说明文件用途
127.0.0.1     localhost   	#文件内容
{{ansbile_facts['all_ipv4_addresses']}}         {{ansible_fact['fqdn']}}     	#引用事实变量

for循环
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

if判定
loop.index #循环迭代记数从1开始
loop.index0 #循环迭代记数从0开始
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例题:显示每个受控主机的主机名和IP号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ansible的加密控制
第一种:
创立加密文件
ansible-vault create westos
在这里插入图片描述
在这里插入图片描述
查看加密文件
ansible-vault view westos
在这里插入图片描述
编辑加密文件
ansible-vault edit westos
在这里插入图片描述
加密已经存在文件
ansible-vault encrypt ww.yml
在这里插入图片描述
解密加密文件
ansible-vault decrypt ww.yml
在这里插入图片描述
第二种:
vim password
在这里插入图片描述
查看加密文件
ansible-vault view test.yml --vault-password-file=password
在这里插入图片描述
创建加密文件
ansible-vault create haha --vault-password-file=password
在这里插入图片描述
加密已经存在的文件
ansible-vault encrypt westos --vault-password-file=password
在这里插入图片描述
解密加密文件
ansible-vault decrypt test.yml --vault-password-file=password
在这里插入图片描述
解密加密文件并将其输出到westos1中
ansible-vault decrypt haha --vault-password-file=password --output=westos1
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值