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目录结构的更多相关文章

  1. Ansible playbook roles

    1  概述 角色(roles):如果我们使用playbook写成一个文件,这个文件会很大,但是不方便组织,我们可以分组,把playbook根据功能,如handler,tasks等分门别类的放在在各自的 ...

  2. Ansible Playbook Roles and Include Statements

    介绍 虽然可以在一个非常大的文件中编写一个playbook(您可能会以这种方式开始学习playbook),但最终您将需要重新使用文件并开始组织事情. 在基本级别,饱含任务的文件允许您将配置策略分解成较 ...

  3. Ansible之roles角色

    一.roles简介 ansible自1.2版本引入的新特性,用于层次性.结构化地组织playbook.roles能够根据层次型结构自动装载变量文件.tasks以及handlers等.要使用roles只 ...

  4. 自动化运维工具Ansible之Roles测验详解

    Ansible Roles 详解与实战案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. 该用 ...

  5. ansible的roles使用

    1.创建roles文件夹 mkdir roles 2.在roles文件夹里面创建文件夹 cd roles/ mkdir {nginx,uwsgi,redis,mysql} 3.cd nginx 4.m ...

  6. devops工具-Ansible进阶playbook&roles

    一.playbook介绍     playbook 是 Ansible 管理配置.部署应用的核心所在,一个playbook由有多“play组成”,而一个play实际就是一个task,每个task是由多 ...

  7. ansible roles 目录规范

    我的ansible roles项目的目录结构: (ansible_venv) [root@localhost ansible_home]# tree ansible_playbooks/ ansibl ...

  8. ansible playbook最佳实践

    本篇主要是根据官方翻译而来,从而使简单的翻译,并没有相关的实验步骤,以后文章会补充为实验步骤,此篇主要是相关理论的说明,可以称之为中文手册之一,具体内容如下: Ansible playbooks最佳实 ...

  9. ansible基础-roles

    一 简介 注:本文demo使用ansible2.7稳定版 在我看来,role是task文件.变量文件.handlers文件的集合体,这个集合体的显著特点是:可移植性和可重复执行性. 实践中,通常我们以 ...

随机推荐

  1. map 地图组件

    地图选择器网址 http://datav.aliyun.com/tools/atlas/#&lat=31.769817845138945&lng=104.29901249999999& ...

  2. golang 内置print/println、fmt、log的区别

    fmt.Println与fmt.Print区别 换行区别不用多说,另外一个区别在于fmt.Print只有在参数间都不是字符串时才会产生间隔 fmt与log的重要区别 fmt没有做同步处理 fmt标准输 ...

  3. Eclipse插件开发中File和IFile的转换

    (1) File转IFile 第一种方法: IFile[] ifile = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationU ...

  4. leetcode刷题-48旋转图像

    题目 给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 思路 没有想到.看过解答后知道可以转置加翻转即可,且能达到最优的时间复杂度O(N^2). 实现 class Solu ...

  5. ByteCTF2019

    VIP 第一阶段: 先检查一下程序开的保护: 程序只开了canary和nx保护.接下来用IDA分析反编译出的伪代码 如上图,载edit函数中我们可以控制size的大小,并且程序没有做任何检查,我们再跟 ...

  6. shell 逻辑判断

    || && 查了 Stack Overflow ||,表示或,从前往后执行,执行第一个真 &&,前者是真才会接着执行 ; 表示接着往下执行,不管前者如何 #!/bin/ ...

  7. [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 ...

  8. Js获取某个节点的类名

    1. document.querySelectorAll(".style-color")[0].getAttribute("class")   2. $('.s ...

  9. 云计算openstack——虚拟机获取不到ip(13)

    一.现象描述: openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二.分析思路: (1)查看neut ...

  10. CSS 常见样式 特殊用法 贯穿线&徽章&箭头

    ### 贯穿渐变线,中间插值- 如图: > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190427200554843.png) ![在这里插入图片描述 ...