playbook

Posted jeffzhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了playbook相关的知识,希望对你有一定的参考价值。

七种武器

1.第一种武器

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

2.第二种武器

ansible-doc是ansible模块的文档说明,针对每个模块都有详细的说明及应用案例介绍,功能和linux系统

man命令类似类似,必须掌握

3.第三种武器

ansible-console 是ansible为用户提供的交互式工具,用户可以在ansible-console虚拟出来的终端上像shell一样使用ansible

内置的各种命令,这为习惯使用shell交互式的用户提供了良好的使用体验

4.第四种武器

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

5.第五种武器

ansible-playbook是日常使用频率最高的命令,工作机制:通过读取编写好的playbook文件实现批量管理

可以理解为按一定条件组成的ansible任务急,必须掌握

6.第六种武器

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

7.第七种武器 

ansible-pull

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

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

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

规划有较高要求

二.JSON简介

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

JSON中的分隔符限于单引号" ‘ ",小括号 (), 中括号 [], 大括号{}, 冒号 : , 逗号,

JSON特性

json 是纯文本

json具有自我描述性(人类可读)

Jason 具有层级结构(值中存在值)

jason可通过javascript进行解析

jason语法规则

数据在名称/值对中

属于由逗号分割

大括号保存对象(键值对{key: value}

中括号保存数组[123,abc,发]

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

{"诗人":

[{"李白":"诗仙","年代":"唐"},

{"杜甫":"诗圣","年代":"唐"},

]

}

YAML简介

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

YAML(YAML Ain‘t Markup Language)

YAML参考了多种语言,如C语言,Python,Perl等并从XML,电子邮件的数据格式中获得灵感,Clark Evans在2001年首次发表了这种语言,

目前已有数种编程语言或脚本语言支持这种语言.

YAML基础语法

yaml的结构通过空格来展示

数组使用"- "来表示(注意-后面有空格)

键值对使用": " 来表示(: 后面有空格)

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

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

#表示注释

注意:

不要使用tab,缩进是初学者容易出错的地方之一

 同一层级缩进必须对齐

YAML写法

YAML的键值表示方法

采用冒号分割

:后必须有一个空格

YAML键值对例子

"诗人":

    -  "李白"

    - "杜甫"

    - "白居易"

"讲师"

  -

    "姓名": "nb"

    "阶段": "1.0"

    "喜好": "大铁锤"

  -

    "姓名": "wk"

    "阶段": "1.5"

    "喜好": "吃香蕉"

Jinja2过滤器 模板简介

Jinjia2是基于Python的模板引擎,包含变量和表达式两部分,两者在模板求职时会被替换为值,模板中还有标签,控制模板的逻辑

为什么要学习Jinjia2模板

因为playbook的模板使用Python的jinja2模块来处理

基本语法

模板的表达式都是包含在分隔符"{{  }}"内的

控制语句都是包含在分隔符"{% %}"内的

模板支持注释,都是包含在分隔符"{# #}"内,支持块注释

调用变量

{{ varname}}

计算

{{  2+3 }}

判断

{{1 in [123] }}

控制语句

{% if name == ‘诗仙‘ %}

  李白

{% elif name == ‘诗圣‘ %}

杜甫

{% endif %}}   #结束

playbook

概念:playbook是ansible用于配置,部署和管理托管主机剧本,通过playbook的详细描述,执行其中的一系列tasks,

可以让远程主机达到预期状态.

-也可以说,playbook字面意思既剧本,现实中由演员按剧本表演,在ansible中由计算机进行安装,部署应用,提供对外服务,

以及组织计算机处理各种各样的事情.

为什么使用playbook

执行一些简单的任务,使用ad-hoc命令可以方便解决问题,但是

 

 

playbook语法格式

playbook由YAML语言编写,遵循YAML

 

 

playbook构成

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

vars:定义playbook

 

 

playbook执行结果

使用ansible-playbook

 

以上是关于playbook的主要内容,如果未能解决你的问题,请参考以下文章

playbook使用

28.playbook

Ansible playbook

Ansible 的 Playbook

ansible-playbook 可用参数

ansible-playbook 可用参数