playbook(二)

Template模块:

基于Python的jinja模版架构,通过模板可以实现向模板文件传参(Python转义)把占位符参数传到配置文件当中去

Jinjia生成一个目标文本文件,然后传递变量到需要配置文件当中(用于web开发)

修改配置文件

修改hosts

写一个yml脚本

运行脚本

验证查看,去目标主机

已经修改完成

小结一下:

Httpd.conf.j2 在文件当中配置的是占位符(声明的变量)

/etc/ansible/hosts 配置了主机的占位符名称和j2文件当中的站位符一致(定义参数:占位符的参数的声明好)

Playbook当中,template模块来把参数传给目标主机的配置文件

例题:同理修改nginx,根据上图需求

目标主机查看:

修改hosts

Tags模块,

又叫标签模块,可以在playbook当中为任务设定标签(tags),我们在运行playbook时可以通过指定任务标签,来实现只允许设定的标签任务

例如:

-name:

Tag:

 Debug

--tags debug

任务标签的种类:

Always:不管是否指定了标签,任务都会执行

Never:即始运行了指定标签,该任务也不会执行

Debug:调试任务

Setup:收集主机信息

自定义标签

Per_tasks:指定标签之前的任务

Post_tasks:运行指定标签之后的任务

演示一下:

playbook还提供了一个特殊的tags为always。作用就是当使用always作为tags的task时,无论执行哪一个tags时,定义有always的tags都会执行。

自定义标签,

也可以运行,但是不能用中文

例题:

指定标签运行

Roles模块,又叫角色

角色:ansible层次化,结构化的组织playbook,使用了roles(角色)

可以根据层次结构,自动装载变量文件,task,以及handler等等

Roles:分别把变量 文件 任务 模块 以及处理器,放在单独的目录当中,使用role模块来一键调用这些文件

Roles:

-----web----总目录,角色

File:存放copy和script模块调用的文件

Templates 存放j2的模板文件

Tasks:包含任务的目录

------main.yml 角色运行的任务

Handlers:包含处理器的目录

-------main.yml

Vars:存放变量的目录

------main.yml

Defaults:包含默认变量的目录

------main.yml

Meta:包含元信息的目录

------main.yml

Site.yml:用来统筹调用所有的配置文件

如何来实现roles:

三个服务:

http

MySQL

PHP

每个目录创建剧本

httpd模块

第二个模块,MySQL模块

第三个角色php模块

回到roles:导演节目

运行脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值