ansible-playbook-roles目录结构
1. ansible-角色-roles目录结构
角色是基于已知文件结构自动加载某些vars_files,任务和处理程序的方法。按角色对内容进行分组还可以轻松与其他用户共享角色。
以下是角色目录结构示例图:
1) 目录结构解释
角色期望文件位于某些目录名称中。角色必须至少包含其中一个目录,但是排除任何未使用的目录是完全正确的。在使用时,每个目录必须包含一个main.yml文件,其中包含相关内容:
- site:是ansible的统一入口,就行调用的安装服务总配置
- webservers.yaml:主要是对ansible里一些能做功能,yum等
- roles:角色目录
- common:公共的roles目录
- nginx:角色的软件目录
- tasks:包含角色要执行的主要任务列表
- handlers:包含处理程序,可以由此角色使用,甚至可以在此角色之外的任何位置使用
- defaults:角色默认的变量
- vars:角色其他的变量
- files:包含可以通过此角色部署的文件
- templates:包含可以通过此角色部署的模板
- meta:角色定义的一些元数据
其他YAML文件可能包含在某些目录中。例如,通常的做法是从 tasks/main.yml 文件中包含特定于平台的任务:
1 # roles/example/tasks/main.yml
2 - name: added in 2.4, previously you used 'include'
3 import_tasks: redhat.yml
4 when: ansible_facts['os_family']|lower == 'redhat'
5 - import_tasks: debian.yml
6 when: ansible_facts['os_family']|lower == 'debian'
7
8 # roles/example/tasks/redhat.yml
9 - yum:
10 name: "httpd"
11 state: present
12
13 # roles/example/tasks/debian.yml
14 - apt:
15 name: "apache2"
16 state: present
角色还可以包括模块和其他插件类型
2) 使用角色
使用角色的经典(原始)方式通过给定游戏的选项:roles
1 ---
2 - hosts: webservers
3 roles:
4 - common
5 - webservers
这为每个角色“xxx”指定了以下行为:
- 如果角色 /xxx/tasks/main.yaml存在,则其中列出的任务将添加到任务中,否则将不会添加任务中。
- 如果角色 /xxx/handlers/main.yaml存在,则其中列出的处理程序将添加到任务中,否则将不会添加任务中。
- 如果角色 /xxx/vars/main.yml存在,则其中列出的处理程序将添加到任务中,否则将不会添加任务中。
- 如果角色 /xxx/defaults/main.yml存在,则其中列出的处理程序将添加到任务中,否则将不会添加任务中。
- 如果角色 /xxx/meta/main.yml存在,则其中列出的任何角色依赖项将添加到角色列表(1.3及更高版本)。
- 任何副本,脚本,模板或包含任务(在角色中)都可以引用roles / x / {files,templates,tasks} /(dir取决于任务)中的文件,而无需相对或绝对地路径化它们。
以下这种方式使用时,你的剧本的执行顺序如下:
- pre_tasks游戏中定义的任何内容。
- 到目前为止触发的任何处理程序都将运行。
- 列出的每个角色将依次执行。将首先运行角色中定义的任何角色依赖项,但需遵循标记过滤和条件。roles meta/main.yml
- tasks游戏中定义的任何内容。
- 到目前为止触发的任何处理程序都将运行。
- post_tasks游戏中定义的任何内容。
- 到目前为止触发的任何处理程序都将运行。
ansible-playbook-roles目录结构的更多相关文章
- Ansible playbook roles
1 概述 角色(roles):如果我们使用playbook写成一个文件,这个文件会很大,但是不方便组织,我们可以分组,把playbook根据功能,如handler,tasks等分门别类的放在在各自的 ...
- Ansible Playbook Roles and Include Statements
介绍 虽然可以在一个非常大的文件中编写一个playbook(您可能会以这种方式开始学习playbook),但最终您将需要重新使用文件并开始组织事情. 在基本级别,饱含任务的文件允许您将配置策略分解成较 ...
- Ansible之roles角色
一.roles简介 ansible自1.2版本引入的新特性,用于层次性.结构化地组织playbook.roles能够根据层次型结构自动装载变量文件.tasks以及handlers等.要使用roles只 ...
- 自动化运维工具Ansible之Roles测验详解
Ansible Roles 详解与实战案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. 该用 ...
- ansible的roles使用
1.创建roles文件夹 mkdir roles 2.在roles文件夹里面创建文件夹 cd roles/ mkdir {nginx,uwsgi,redis,mysql} 3.cd nginx 4.m ...
- devops工具-Ansible进阶playbook&roles
一.playbook介绍 playbook 是 Ansible 管理配置.部署应用的核心所在,一个playbook由有多“play组成”,而一个play实际就是一个task,每个task是由多 ...
- ansible roles 目录规范
我的ansible roles项目的目录结构: (ansible_venv) [root@localhost ansible_home]# tree ansible_playbooks/ ansibl ...
- ansible playbook最佳实践
本篇主要是根据官方翻译而来,从而使简单的翻译,并没有相关的实验步骤,以后文章会补充为实验步骤,此篇主要是相关理论的说明,可以称之为中文手册之一,具体内容如下: Ansible playbooks最佳实 ...
- ansible基础-roles
一 简介 注:本文demo使用ansible2.7稳定版 在我看来,role是task文件.变量文件.handlers文件的集合体,这个集合体的显著特点是:可移植性和可重复执行性. 实践中,通常我们以 ...
随机推荐
- map 地图组件
地图选择器网址 http://datav.aliyun.com/tools/atlas/#&lat=31.769817845138945&lng=104.29901249999999& ...
- golang 内置print/println、fmt、log的区别
fmt.Println与fmt.Print区别 换行区别不用多说,另外一个区别在于fmt.Print只有在参数间都不是字符串时才会产生间隔 fmt与log的重要区别 fmt没有做同步处理 fmt标准输 ...
- Eclipse插件开发中File和IFile的转换
(1) File转IFile 第一种方法: IFile[] ifile = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationU ...
- leetcode刷题-48旋转图像
题目 给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 思路 没有想到.看过解答后知道可以转置加翻转即可,且能达到最优的时间复杂度O(N^2). 实现 class Solu ...
- ByteCTF2019
VIP 第一阶段: 先检查一下程序开的保护: 程序只开了canary和nx保护.接下来用IDA分析反编译出的伪代码 如上图,载edit函数中我们可以控制size的大小,并且程序没有做任何检查,我们再跟 ...
- shell 逻辑判断
|| && 查了 Stack Overflow ||,表示或,从前往后执行,执行第一个真 &&,前者是真才会接着执行 ; 表示接着往下执行,不管前者如何 #!/bin/ ...
- [LeetCode] 221. 最大正方形(DP)
题目 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 ...
- Js获取某个节点的类名
1. document.querySelectorAll(".style-color")[0].getAttribute("class") 2. $('.s ...
- 云计算openstack——虚拟机获取不到ip(13)
一.现象描述: openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二.分析思路: (1)查看neut ...
- CSS 常见样式 特殊用法 贯穿线&徽章&箭头
### 贯穿渐变线,中间插值- 如图: > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190427200554843.png) ![在这里插入图片描述 ...