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配置文件中指定角色路径中的角色
角色存放的路径在ansbile配置文件中定义(默认目录为/etc/ansible/roles):
3、角色的目录结构
目录 | 作用 |
---|---|
tasks | 角色需要执行的任务文件放置在此目录中,默认的主任务文件为main.yml;当调用角色时默认会执行main.yml文件中的任务,也可以将其他需要执行的任务文件通过include的方式添加至此目录下的main.yml文件中 |
handlers |
当角色需要调用handlers时,默认会在此目录中的main.yml文件中调用对应的handler |
defaults | 角色会使用到的变量可以写入至此目录的main.yml文件中,通常此文件的变量都用于设 |