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. 12 props 传的是数组处理

    <template> <div>InfoDetailed</div> </template> <script> export default ...

  2. 查看Linux虚拟机是什么架构

    uname -a 可以看出此虚拟机是x86架构,64位

  3. 为什么ping不通google.com

    前言 为什么在ping不通Google的时候,我们却可以web直接访问Google (已开启SSR 翻 墙) SSR访问Google 因为GFW的限制导致国内无法直接访问谷歌,那么SSR为什么能绕过限 ...

  4. PHP的九个超全局变量

    1. 什么是超全局变量 PHP官网:超全局变量 超全局变量就是在全部作用域中始终可用的内置变量. 全局作用域.函数作用域都可以使用的PHP内置变量. 在函数或方法中无需执行 global $varia ...

  5. 回归 | js实用代码片段的封装与总结(持续更新中...)

      上一次更博还是去年10月28号了,截至今天已经有整整4个月没有更新博客了,没更新博客不是代表不学了,期间我已经用vue做了两个项目,微信小程序做了一个项目,只是毕竟找到工作了,想偷偷懒,你懂的. ...

  6. MySQL For Linux(CentOS/Ubuntu/Debian/Fedora/Arch)一键安装脚本(5.1-8.0)

    简介 很多童鞋不懂这么在Linux系统安装MySQL,网上大多数教程较复杂,不太适合小白安装,本教程提供一键安装脚本供大家使用,教大家怎么在Linux操作系统( 支持CentOS/Ubuntu/Deb ...

  7. 传值&传值引用

    转自http://www.cnblogs.com/androidsuperman/p/9012320.html 首先对传值和传引用要有个基本的概念 传值:传递的是值的副本.方法中对副本的修改,不会影响 ...

  8. Maven【常见知识点速查】

    文章更新时间:2020/04/10 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是一个工程 如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利 ...

  9. JVM学习(三)JVM垃圾回收

    一.引用的分类 在了解JVM垃圾回收机制之前,了解一下对象的引用类型是非常必要的. 强引用:GC时不会被回收 软引用:描述有用但不是必须的对象,在发生内存溢出异常之前被回收 弱引用:描述有用但不是必须 ...

  10. minium-微信小程序自动化框架-python,官方文档

    minium文档 个人将其部署到了自己的服务器上,如有需要可以访问共同学习这个minium 用python来实现小程序自动化测试... 文档地址 http://49.232.203.244:3000/ ...