playbook基础

旧街凉风 提交于 2019-12-04 13:17:58

ansible七种武器

第一种武器

-ansible命令,用于执行临时性的工作,必须掌握

第二种武器

-ansible-doc是ansible模块的文档说明,针对每个模块都有详细的说明及应用案例介绍,功能和Linuxman命令类似,必须掌握

第三种武器

ansible-console是ansible为用户提供的交互式工具,用户可以在ansible-console虚拟出来的终端上像shell一样使用ansible内置的各种命令,这为习惯使用shell交互方式的用户提供了良好的使用体验

第四种武器

ansible-galaxy从github上下载管理roles的一款工具,与Python的pip类似

第五种武器

ansible-playbook是日常应用中使用频率最高的命令.工作机制:通过读取先编写好的playbook文件实现批量管理可以理解为按照一定条件组成的ansible任务集,必须掌握

第六种武器

ansible-vault主要用于配置文件加密.如编写的playbook文件中包含敏感信息,不想其它人随意查看,可以用它加密/解密这个文件

第起中武器

ansible-pll

ansible用两种工作模式pull/push,默认使用push模式工作,pull和push工作模式机制刚好相反

适合场景:有大批量机器需要配置,即便使用高并发线程依旧要花费很多时间

通常在配置大批量机器的场景下使用,灵活性稍有欠缺,但效率几乎可以无限提升,对运维人员的技术水平和前瞻规划有较高要求

JSON简介

JSON是Javascrip对象表示法,它是一种基于文本独立语言的轻量级数据交换格式

JOSN中的分隔符限于单引号小括号 中括号  大括号  冒号 逗号

JSON特性

JSON是纯文本

JSON具有自我描述

JSON具有层级结构

JSON可以通过JavaScrip进行解析

JSON简介

JSON语法规则

-数据在名称/值对中

数据有逗号分隔

大括号保存对象

中括号保存对象

中括号保存数组

JSON数据的书写格式是:名称/值对

-名称/值对包括字段后面写一个冒号.然后是值

YAML简介

是一个可读性高,用来表达数据序列的格式

YAML(YAML Ainit Markup Language)

YAML参考了多种语言,如:c语言 python perl等,并从XML,电子邮件的数据格式中获得灵感,CLARK Evans在2001年首次发表了这种语言,目前已经有数种编程语言或脚本语言支持这种语言

YAML基础语法

YANL的结构通过空格来展示

-数组使用"-" 来表示

键值对使用: 来表示

YAML使用一个固定的缩进风格表示数据级结构关系

一般每个缩进级别由两个空格组成

#表示注释

(注意不要用tab键)

YAML的键值表示方法

-采用冒号分隔

-:后面必须有一个空格

-YAML键值对例子

  • playbook

playbook是ansible用于配置,部署和管理托管主机剧本,通过playbook的详细描述,执行其中的一系列tasks,可以让远程主机达到语气状态

-也可以数,playbook字面意思即剧本,现实中有演员按照剧本表演,在ansible中有计算机进行安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情

playbook语法格式

-playbook有YAML语言编写,遵循YAML标准

-在同一个列表中的元素应该保持相同的缩进

playbook有一个或多个play组成

play中hosts  variables  roles tasks等对此昂的表示方法都是键值中间以: 分隔表示

YAML开头---

构成:

hosts:  定义要执行playbook的远程主机组

vars: 定义playbook 运行是需要使用的变量

tasks: 定义将要在远程主机上执行的任务列表

handlers:定以task执行完成以后需要调用的任务

输出结果:

绿色代表执行成功

***代表系统代表系统状态发生改变

红色代表执行失败

hosts行  内容是一个(多个)组或主机的patterns,以逗号为分隔符

remote-user账户名

tasks 命令集合每个play包含了一个task列表

一个task在其所对应的所有主机上(通过host  pattern匹配的所有主机)执行完毕之后,下一个task才会执行

hosts

主机的集合

定义要执行任务的主机

变量参数

-传递参数

-e参数

参数格式必须是json或xml  

ansible-playbook对错误的处理

-默认情况判断$?,如果值不为0旧停止执行

但某些情况我们需要忽略错误继续执行

错误处理方法

ignore_errors:对错误的处理方式

True表示忽略错误继续执行

False表示遇到错误就停止执行

tags:给指定的任务定义一个调用标识

使用格式:

name:NAME

module: arguments

tags:TAG_ID

playbook 调用方式

-t  tags  --tags=TAGS

handle

在notify中列出的操作称为hanger ,即notify调用handler中定义的操作

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!