0.介绍

Playbooks 是 Ansible 管理配置、部署应用和编排的语言,可以使用 Playbooks 来描述你想在远程主机执行的策略或者执行的一组步骤过程等

类似于一组任务集,定义好像项目,组织结构,配置文件等信息,通过task将所要做的事情一步一步的组织在一起就是完整的Playbook

  官方Demo资料:https://github.com/ansible/ansible-examples

  Playbooks是采用YMAL语言结构,基础语法请参考:http://docs.ansible.com/ansible/YAMLSyntax.html

  一个完整的Playbooks结构,以部署tomcat为例:

    tomcat/   ------>  tomcat的playbook

    ├── hosts    -------->    指定安装tomcat的机器清单(Inventory)

    ├── roles    ------>  子项清单 (可以有一项或多项的任务)

    │   └── tomcat    ----> 安装tomcat

    │       ├── files   ---> 存放文件

    │       │   ├── apache-tomcat-7.0.64.tar.gz    ----> tomcat安装包

    │       │   ├── jdk-7u79-linux-x64.tar.gz     -----> jdk安装包

    │       │   └── tomcat    ------>tomcat服务启动脚本

    │       └── tasks   ------>任务项清单

    │           ├── jdk.yml     ---> jdk任务列表

    │           ├── main.yml    --->  任务入口

    │           └── tomcat.yml    ---->tomcat任务列表

    ├── site.yml    ansible playbook执行入口

    ├── tomcat.sh   批量安装shell.

    └── tomcat-testing.sh   tomcat安装测试脚本

  Ansible roles 完整示例:

    root@node1 playbook]# tree  roles/

    roles/ \\ansible所有的信息都放到此目录下面对应的目录中

    └── nginx  \\角色名称

        ├── default  \\为当前角色设定默认变量时使用此目录,应当包含一个main.yml文件

        ├── files  \\存放有copy或script等模块调用的文件

        ├── handlers \\此目录总应当包含一个main.yml文件,用于定义各角色用到的各handler

        ├── meta \\应当包含一个main.yml,用于定义角色的特殊设定及其依赖关系;1.3及以后版本支持

        ├── tasks \\至少包含一个名为main.yml的文件,定义了此角色的任务列表,可使用include指令

        ├── templates \\template模块会自动在此目录中寻找Jinja2模板文件

        └── vars  \\应当包含一个main.yml文件,用于定义此角色用到的变量

1.项目结构介绍

  Playbook中的属性介绍:

    name    表示playbook 的名称

    hosts    表示执行的机器清单

    connection:允许你指定ssh parmiko或者local这三种传输方式

    gather_facts:默认每次连接都会执行setup,如果不需要用到变量可以制定这个字段为now

    remote_user :  远程端执行的用户

    tasks:   定义执行的任务清单,顺序执行

    templates :  存放模板文件

    vars:  存放变量

    handlers:  定义以后回调的方法

    file: 存放复制的安装文件,比如安装文件等

2.PlayBook示例

  安装ftp服务:

  ---

      - hosts: test

  remote_user: root

        tasks:

   - name: install ftp

           command: yum -y install ftp

3.其他

  3.1 首次连接或者重装系统之后会出现检查 keys 的提示

    The authenticity ofhost '192.168.0.5 (192.168.0.5)' can't be established.

    ECDSA key fingerprint is 05:51:e5:c4:d4:66:9b:af:5b:c9:ba:e9:e6:a4:2b:fe.

    Are you sure you want to continue connecting (yes/no)?

  解决办法:

    vim /etc/ansible/ansible.cfg 或者 ~/.ansible.cfg

    [defaults]

    host_key_checking = False

    也可以通过设置系统环境变量来禁止这样的提示

    export ANSIBLE_HOST_KEY_CHECKING=False

  3.2 在使用 paramiko 模式时,主机 keys 的检查会很慢

  3.3 默认情况下 Ansible 会记录一些模块的参数等信息到每个被控端的 syslog 日志文件里,除非在任务或者剧本里设置了 no_log: True 会不记录日志

4.参考记录

Ansible-Playbook

  http://www.178linux.com/7001

   集群运维ansible的playbook配置及template模板的使用

  http://www.tuicool.com/articles/UvU3ai

  http://rfyiamcool.blog.51cto.com/1030776/1413031

  Playbook Roles and Include Statements

  http://docs.ansible.com/ansible/playbooks_roles.html

Ansible学习记录五:PlayBook学习的更多相关文章

  1. Linux 学习记录 五(软件的安装升级).

    一.gcc gcc是Linux上面最标准的C语言的编译程序,用来源代码的编译链接. gcc -c hello.c 编译产生目标文件hello.o gcc -O hello.c 编译产生目标文件,并进行 ...

  2. leveldb 学习记录(五)SSTable格式介绍

    本节主要记录SSTable的结构 为下一步代码阅读打好基础,考虑到已经有大量优秀博客解析透彻 就不再编写了 这里推荐 https://blog.csdn.net/tankles/article/det ...

  3. Linux 学习记录五(软件的安装升级).

    一.gcc gcc是Linux上面最标准的C语言的编译程序,用来源代码的编译链接. gcc -c hello.c 编译产生目标文件hello.o gcc -O hello.c 编译产生目标文件,并进行 ...

  4. Spring学习记录(五)---bean的作用域scope

    作用域:singleton:单例,整个应用中只创建一个实例(默认) prototype:原型,每次注入时都新建一个实例 session:会话,每个会话创建一个实例 request:请求,每个请求创建一 ...

  5. zeromq学习记录(五)vc下多线程

    /************************************************************** 技术博客 http://www.cnblogs.com/itdef/   ...

  6. LoadRunner11学习记录五 -- 错误提示分析

    LoadRunner测试结果具体分析: 一.错误提示分析  分析实例: 1.Error: Failed to connect to server “172.17.7.230″: [10060] Con ...

  7. SpringMVC学习记录五——功能开发及参数处理

    15       包装类型pojo参数绑定 15.1      需求 商品查询controller方法中实现商品查询条件传入. 15.2      实现方法 第一种方法:在形参中 添加HttpServ ...

  8. mybatis学习记录五——动态sql

    8       动态sql 8.1     什么是动态sql mybatis核心 对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装. 8.2     需求 用户信息综合查询列表 ...

  9. Activiti学习记录(五)

    1.排他网关 说明: 1) 一个排他网关对应一个以上的顺序流 2) 由排他网关流出的顺序流都有个conditionExpression元素,在内部维护返回boolean类型的决策结果. 3) 决策网关 ...

随机推荐

  1. tomcat动态查看服务器打印日志

    [root@localhost ~]# cd /usr/local/tomcat/logs [root@localhost logs]# tail -f catalina.out   FROM:htt ...

  2. [JLOI2011]飞行路线 分层图最短路

    题目描述: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在nn个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一 ...

  3. TP5 belongsTo 和 hasOne的区别

    hasOne和belongsTo这两种方法都可以应用在一对一关联上,但是他们也是有区别的: belongsTo: 从属关系:就是谁为主的问题 A:{id,name,sex} B:{id,name.A_ ...

  4. bzoj1618 购买干草

    Description 约翰的干草库存已经告罄,他打算为奶牛们采购日(1≤日≤50000)磅干草.他知道N(1≤N≤100)个干草公司,现在用1到N给它们编号.第i个公司卖的干草包重量为Pi(1≤Pi ...

  5. 2014 CodingTrip - 携程编程大赛 (预赛第二场)

    1001: 食物链(poj1182),直接贴代码,稍作可过 并查集 // // main.cpp // 携程1 // // Created by zhang on 14-4-11. // Copyri ...

  6. HDOJ 5411 CRB and Puzzle 矩阵高速幂

    直接构造矩阵,最上面一行加一排1.高速幂计算矩阵的m次方,统计第一行的和 CRB and Puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  7. error:assign attribute must be unsafeunretained

    今天在使用协议的过程中.偶然发现这样使用 ? 1 2 3 4 5 6 7 8 9 10 @interface AppDelegate (){     id<chatdelegate>  t ...

  8. HDU 4183Pahom on Water(网络流之最大流)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4183 这题题目意思非常难看懂..我看了好长时间也没看懂..终于是从网上找的翻译. .我就在这翻译一下吧 ...

  9. 安卓ContentObserver模式获取短信用正则自己主动填充验证码

    近期做注冊的时候看到非常多app在手机接受到短信的时候直接填写验证码到界面省略用户自己主动输入,感觉这样确实蛮人性化的呵呵.于是自己也做了一个 步骤: 首先我使用了ContentObserver监听短 ...

  10. 我持续推动Rust语言支持Windows XP系统

    前言 Rust好像长期以来不支持Windows XP系统.有不少用户发帖提议官方支持XP,基本上都被Rust官方开发人员明白的拒绝了.他们的对话大致上是以这种形式開始和结束的(当中乙方代表官方及其拥趸 ...