一、roles文件存放位置

可以在ansible.cfg配置文件中找到,默认路径如下:

也可以在ansible.cfg文件中自定义修改

二、下面以/usr/share/ansible目录来讲解

ansible的目录结构如下以安装httpd为示例:

[root@localhost share]# tree ansible/
ansible/
├── http_playbook.yml    # 和roles平级,来调用对应的剧本
├── plugins          # 默认自带的插件目录
└── roles            # roles存放那个目录
    ├── app          # 安装app的剧本
    ├── httpd         # 安装htppd的剧本
    │   ├── files        #file模块用到的文件存放的目录, tasks中也可以使用绝对路径来调用其他位置的文件
    │   │   └── 1for.txt
    │   ├── handlers       # handlers任务,和notify配合使用, 这里需要用main.yml来做handlers任务的总调用,可以在该目录下定义其他yml,但是必须加入main.yml中来调用
    │   │   └── main.yml    # handlers任务的总入口
    │   ├── tasks         # taks目录,该目录下可以定义很多yml文件来执行操作,但是必须main.yml作为总调用入口,相当于把原本写在一个playbook中的任务分开执行,增加文件的复用性和灵活性
    │   │   ├── cp_conf.yml
    │   │   ├── group.yml
    │   │   ├── main.yml
    │   │   ├── service.yml
    │   │   ├── teml2.yml
    │   │   ├── teml.yml
    │   │   ├── user.yml
    │   │   └── yum.yml
    │   ├── templates      # task中用到的木板文件默认都存放在该目录下以便调用
    │   │   ├── 2for.txt
    │   │   └── httpd.conf
    │   └── vars        # task中的参数全部定在该目录下,并且以main.yml为入口
    │       └── main.yml
    └── nginx          # 安装nginx软件的剧本

三、关键文件展示

总入口文件,只是编写内容比传统playbook少,只需要调用roles下面对应的剧本即可:

tasks入口文件,tasks目录下的独立任务只是把原来的playbook中的tasks独立拆分出来而以,还是需要经由main.yml文件调用:

handlers及vars入口文件展示。同样这些文件都可以和task目录一样来编写,确保使用main.yml文件做主的入口调用即可:

四、关于剧本roles和playbook的区别

个人理解:

playbook是在一个yml文件中完成了所有的事情,当一个任务或几个任务很简单就能实现的话就比较方便,类是于一个shell脚本搞定所有事情,缺点就是复用性、可移植性不高

roles就是把playbook里面的任务全部拆解出来,模块化,构成一个框架。这样在较大工程环境下灵活性很好,并且维护起来比较方便。类似于用很多shell脚本创建一个大工程,每个shell脚本都有自己独立的功能。

企业级playbook的使用的更多相关文章

  1. 企业级自动化运维工具应用实战-ansible

    背景 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运 ...

  2. 企业级LINUX自动化运维工具Ansible实战课程下载

    什么是Ansible? Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量 ...

  3. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  4. 高效而稳定的企业级.NET Office 组件Spire(.NET组件介绍之二)

    在项目开发中,尤其是企业的业务系统中,对文档的操作是非常多的,有时几乎给人一种错觉的是”这个系统似乎就是专门操作文档的“.毕竟现在的很多办公中大都是在PC端操作文档等软件,在这些庞大而繁重的业务中,单 ...

  5. 为什么很多SaaS企业级产品都熬不过第一年

    因工作缘由,笔者与周边数位SaaS企业级应用的创始人.运营负责人有过深入接触,发现一个有趣的现象:刚起步时,蓝图远志.规划清晰,但是一路下来,却异常艰难,有些甚至熬不过第一年,就关门歇业. 2015年 ...

  6. 《Ansible权威指南》笔记(4)——Playbook

    七.Playbook1.语法特性如下:(1)"---"首行顶格开始(2)#号注释(3)缩进统一,不同的缩进代表不同的级别,缩进要对齐,空格和tab不能混用(4)区别大小写,键值对k ...

  7. 记一次企业级爬虫系统升级改造(二):基于AngleSharp实现的抓取服务

    爬虫系统升级改造正式启动: 在第一篇文章,博主主要介绍了本次改造的爬虫系统的业务背景与全局规划构思: 未来Support云系统,不仅仅是爬虫系统,是集爬取数据.数据建模处理统计分析.支持全文检索资源库 ...

  8. 通过arcgis在PostgreSQL中创建企业级地理数据库

    部署环境: Win7 64位旗舰版 软件版本: PostgreSQL-9.1.3-2-windows-x64 Postgis-pg91x64-setup-2.0.6-1 Arcgis 10.1 SP1 ...

  9. .NET应用架构设计—重新认识分层架构(现代企业级应用分层架构核心设计要素)

    阅读目录: 1.背景介绍 2.简要回顾下传统三层架构 3.企业级应用分层架构(现代分层架构的基本演变过程) 3.1.服务层中应用契约式设计来解决动态条件不匹配错误(通过契约式设计模式来将问题在线下暴露 ...

随机推荐

  1. 设置input中placeholder的样式(placeholder设置字体)

    方法: 代码示例: .input::-webkit-input-placeholder { font-size: 3.73333333vw; color: #cccccc; } .input:-moz ...

  2. Dynamics 365-关于Solution的那些事(一)

    关于CRM Solution,我准备写两到三篇的博客来做下介绍:包括一些基本信息,超大solution,还有增量更新solution操作等. CRM中的component,都是放在一个名叫Soluti ...

  3. 用npm安装git上的项目

    直接通过 git 上项目的地址进行安装npm install git+https://github.com/sunxiaochuan/koatest.git 地址获取如下图:

  4. Github入门详情教程

    前言 之前我写了一篇文章<一篇文章了解Github和Git教程>还延伸了几篇阅读,对大部分小白很有用,那么我继续普及下Github页面及其概念. 定义 GitHub 是一个网站,一个面向开 ...

  5. 字符串按照Z旋转90度然后上下翻转的字形按行输出字符串--ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  6. 设置MYSQL数据库编码为UTF-8

    设置MYSQL数据库编码为UTF-8   1.  编辑MySql的配置文件 MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,可以搜索,Linux下一 ...

  7. SQL MIN() 函数

    MIN() 函数 MIN 函数返回一列中的最小值.NULL 值不包括在计算中. SQL MIN() 语法 SELECT MIN(column_name) FROM table_name 注释:MIN ...

  8. docker 数据卷和docker数据卷容器以及数据卷的备份和还原

    一:数据卷 1.什么是数据卷 数据卷是通过特殊设计的目录,可以绕过联合文件系统,为一个或者多个容器提供服务,数据卷是在docker宿主机当中,数据卷可以是文件也可以是文件夹. 2.特点 1.数据卷在容 ...

  9. windows部署jenkins持续集成maven测试项目不能访问测试报告

    买了一台阿里云的服务器用于练习maven test项目,系统版本wiondows server 2012,将jenkins war包部署在Tomcat服务器上,项目构建后,生成的报告在C:\Windo ...

  10. CodeBlocks卸载后重装 编译c文件提示错误信息“No such file or directory”

    编译最简单的helloworld程序,提示第一行#include<stdio.h> 找不到头文件. 解决方法: 再次卸载CodeBlocks后,将之前的配置文件删除. 路径:C:\User ...