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中定义的操作