playbook(二)

Template模块:

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

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

playbook(二)_第1张图片

修改配置文件

修改hosts

playbook(二)_第2张图片

playbook(二)_第3张图片

写一个yml脚本

playbook(二)_第4张图片

运行脚本

playbook(二)_第5张图片

验证查看,去目标主机

playbook(二)_第6张图片

已经修改完成

小结一下:

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

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

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

playbook(二)_第7张图片

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

playbook(二)_第8张图片

目标主机查看:

playbook(二)_第9张图片

修改hosts

playbook(二)_第10张图片

Tags模块,

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

例如:

-name:

Tag:

 Debug

--tags debug

任务标签的种类:

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

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

Debug:调试任务

Setup:收集主机信息

自定义标签

Per_tasks:指定标签之前的任务

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

演示一下:

playbook(二)_第11张图片

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

playbook(二)_第12张图片

自定义标签,

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

playbook(二)_第13张图片

playbook(二)_第14张图片

例题:

playbook(二)_第15张图片

playbook(二)_第16张图片

指定标签运行

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

playbook(二)_第17张图片

每个目录创建剧本

playbook(二)_第18张图片

httpd模块

playbook(二)_第19张图片

playbook(二)_第20张图片

playbook(二)_第21张图片

第二个模块,MySQL模块

playbook(二)_第22张图片

playbook(二)_第23张图片

playbook(二)_第24张图片

playbook(二)_第25张图片

第三个角色php模块

playbook(二)_第26张图片

playbook(二)_第27张图片

playbook(二)_第28张图片

playbook(二)_第29张图片

回到roles:导演节目

playbook(二)_第30张图片

运行脚本

你可能感兴趣的:(服务器,网络,linux)