Ansible详解(十二)——Ansible Roles详解

今天继续给大家介绍Linux运维相关知识,本文主要内容是Ansible的Roles详解。

一、Ansible Roles简介

Ansible自1.2版本之后,引入了Roles的新特性,以便层次性和结构化的组织Playbook。相比于Ansible命令的方式进行控制,Ansible Playbook的控制方式极大的提升了Ansible对于被控端设备的管理能力。但是,如果我们想配置更加复杂的被控端环境,那么但但的将所有的配置命令写成一个Playbook文件就可多达成百上千行。这极不利于Ansible Playbook的管理和维护。
相比于Ansible Playbook,Roles能够层次型结构自动装载变量、任务以及handlers。在本质上,Ansible Roles就是将变量、任务、模板以及处理器分别的放在不同的目录中,并通过include的方式进行调用,并组合成一个整体。

二、Ansible Roles目录结构

Ansible Roles目录结构一般如下:
在这里插入图片描述

三、Ansible Roles目录解释

结合上图,我们可以这样理解Ansible的目录结构。
Ansible的Roles配置全部存放在/etc/ansible/roles/目录下。在该目录下,有着很多子文件夹,每个子文件夹就是一个role。每个Role通常应该包含以下子文件夹。
1、files/
用来存放copy模块的文件,或者是script模块的脚本文件。
2、tasks/
用于存放一系列任务文件,在该目录下,必须存在一个main.yml文件,该文件会通过include调用其他的文件。
3、vars/
该目录下存放一系列的变量,在该目录下,必须存在一个main.yml文件,该文件会通过include调用其他的文件。如果整个roles配置变量使用较少,则只使用一个main.yml文件即可,但是如果整个roles配置变量比较多,那么就可以将变量进行分类后存放到不同的目录下,然后再通过main.yml进行调用。
4、meta/
该目录通常存放此Role的特殊设定及其依赖关系,在该目录下,也必须存在一个main.yml文件。
5、default/
该目录存放此Role的设定默认变量,在该目录下,也必须存在一个main.yml文件。
6、handlers/
该目录下用于存放Role中触发条件后执行的动作,在该目录下,也必须存在一个main.yml文件。
7、template/
此目录下用于存放此Role需要使用的jinjia2模板文件。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/123553489