ansible中角色的介绍
一个角色本质上就是目录
在一个剧本中需要执行多项操作,还需要让操作执行明白,就需要配置相应的角色。
在创建好角色之后,会自动在角色目录下创建好很多子目录。


如上图所示,这就是创建了一个lnmp的角色。

如上图所示,是创建好角色之后出现的子目录,可以将对应角色的普通任务写在tasks目录里。
可以将对应角色的变量写在vars目录下的main.yml文件里。
可以将jinja模板写在templates目录里。
在files目录下可以存放对应的普通文件。
在handlers目录下可以写对应的handlers操作。
在defaults目录下的main.yml文件用来定义一些默认参数。
tests目录下有一个test.yml文件,这个文件里面可以写一些测试的任务。
在同一个角色里面写操作的时候,这些操作可能会涉及到相互引用。比如说在copy模块中是不需要去写源文件的路径的,ansible软件会自动在角色目录中去寻找对应的源文件。
在同一个角色中,相互引用文件,操作时,不需要添加任何路径。【如果加,反而就出错了。】
案例:部署zabbix agent的剧本
1.zabbix仓库
2.安装软件
3.改配置文件
4.启动zabbix
当我们在工作的时候,如果有一批机器用不到了,关机了。那么必须要在zabbix对这些机器进行禁用,不然过一段时间之后,数据库的负载会非常重。

如上图所示,首先创建对应的用户。

如上图所示,在角色目录下的files目录下准备对应的repo源文件。

如上图所示,我们还需要zabbix配置文件的jinja模板文件。




如上图所示,使用


如上图所示,这是对zabbix角色创建对应的tasks任务。


如上图所示,这是设置当任务执行成功,配置文件发生change=true的时候,发生的操作。
执行角色


如上图所示,这是编辑对应的剧本文件,直接运行ansible-playbook /opt/playbook/installZabbixAgent.yml
就可以直接运行这个角色对应的剧本。