一、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. git 取消对某个文件的跟踪

    git rm --cached <fileName> 例如 : git add 后,不想提交在status里的.idea/vcs.xml.操作如下:

  2. wordpress常用函数及使用位置

    single 页面: 摘要内容:the_excerpt():如果摘要空,摘取正文内容:需要在循环中使用 获取当下页面的分类:wp_get_post_terms( int $post_id, strin ...

  3. 解决PostGIS打开shp文件输入输出模块出现"找不到文件libintl-9.dll"的问题

    找到shp2pgsql-gui.exe这个程序的目录 复制一份libintl-8.dll副本,改名为libintl-9.dll即可.

  4. event 和delegate的分别

    突然想起delegate委托是支持+= 和-=操作的,然后研究一下究竟这个是怎么做到的,好模仿一下.一开始以为是+=的运算符重载,但是在类库参考中并没有这个运算符重载,只有!= 和==运算符重载.有点 ...

  5. Java基础之入门

    写写基础,顺便回顾下,再深层次思考下哪些深入的没弄明白. Java是Sun Microsystems于1995年推出的高级编程语言  其版本 由 1.1 -> 1.2 -> 1.3 -&g ...

  6. Linux学习历程——Centos 7 账户管理命令(用户篇)useradd usermod userdel

    一.命令介绍 useradd     用于创建新的用户 usermod    用于修改用户属性 userdel      用于删除用户 -------------------------------- ...

  7. 关于当前Web前端技术的一些感悟和笔记

    最近这些年,随着前端应用技术突飞猛进,产生了很多新的前端框架,当然也引入了数不胜数的前端技术概念,前端不在是早期Web Form的拖拉处理方式,也不再是Ajax+HTML那么简单,随着前端技术的发展, ...

  8. IdentityServer4客户端如何获取自定义声明,了解一下?

    前言 久违了各位,之前录制过IdentityServer4的基础视频(https://space.bilibili.com/319652230/#/),有兴趣了解的童鞋可以看一下,只不过未发表成博客. ...

  9. maven笔记学习

    一.修改setting.xml文件中的镜像 在导入他人项目或者在导入项目时,我们会出现在项目中不能识别maven配置的库文件的情况那么我们可以重新下载本地库, 首先我们可以修改我们安装的maven环境 ...

  10. flex.css

    flex.css:https://codepen.io/webstermobile/pen/apXEER/