ansible中的角色使用

ansible roles

1、ansible中的角色简介

角色(roles)是ansible自1.2版本开始引入的新特性,用于层次性、结构化的组织playbook;roles能够根据层次型结构自动装载变量文件、tasks以及handlers等剧本元素;简单的说就是,roles通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们的一种机制;角色一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用的频率很高;也可以用于构建守护进程等场景中;roles以特定的层级目录结构进行组织tasks、variables、handlers、templates、files等,相当于函数的调用,把各个功能切割成片段来执行

2、创建及查看角色

ansible-galaxy  init  role1                ##创建角色至当前所在目录

ansible-galaxy  list                        ##查看当前位置ansible配置文件中指定角色路径中的角色

ansible中的角色使用_第1张图片

角色存放的路径在ansbile配置文件中定义(默认目录为/etc/ansible/roles):

ansible中的角色使用_第2张图片

3、角色的目录结构

目录 作用
tasks

角色需要执行的任务文件放置在此目录中,默认的主任务文件为main.yml;当调用角色时默认会执行main.yml文件中的任务,也可以将其他需要执行的任务文件通过include的方式添加至此目录下的main.yml文件中

handlers

当角色需要调用handlers时,默认会在此目录中的main.yml文件中调用对应的handler
defaults 角色会使用到的变量可以写入至此目录的main.yml文件中,通常此文件的变量都用于设置默认值,以便在没有设置对应变量值时play有默认的变量值可以使用,此文件中的变量的优先级时最低的
vars 角色中会使用到的变量可以写入至此目录的main.yml文件中,不同于上述的是,此目录文件下的变量优先级比较高,可以确保在调用角色时使用到的变量为此目录下文件中的变量值,由于优先级高,此下文件中的变量值不会轻易被覆盖
meta 可以通过将元数据写入至此目录下的main.yml文件来对角色赋予元数据,用于描述角色的相关属性,比如作者信息、角色功能等;也可以在此下main.yml文件中定义此角色依赖于哪些角色,或者改变角色的默认调用设定
templates 此目录下存放着角色相关的模板文件,当没有指定模板路径使用角色相关模板时,会默认调用此目录中对应名称的模板文件
fil

你可能感兴趣的:(linux)