playbook简单使用

ansible七种武器

  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是什么

  • JSON是JavaScript对象表示法,它是一种基于文本独立于语言的轻量级数据交换格式
  • JSON中的分隔符限于单引号" ’ " 、小括号" () " 、中括号" [ ] " 、大括号" { } " 、冒号 " : " 和逗号 " , "

JSON 特性

  • JSON是纯文本
  • JSON具有"自我描述性"(人类可读)
  • JSON具有层级结构(值中存在值)
  • JSON可通过JavaScript进行解析

JSON 语法规则

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 大括号保存对象
  • 中括号保存数组

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

  • 名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值

YAML简介

YAML是什么

  • 是一个可读性高,用来表达数据序列的格式
  • YAML(YAML Ain’t Markup Language)
  • YAML参考了多种语言,如:C语言、Python、Perl等,并从XML、电子邮件的数据格式中获得灵感,Clark Evans在2001年首次发表了这种语言,目前已有数种编程语言或脚本语言支持这种语言

YAML基础语法

  • YAML的结构通过空格来展示
  • 数组使用"- "来表示
  • 键值对使用": "来表示
  • YAML使用一个固定的缩进风格表示数据层级结构关系
  • 一般每个缩进级别由两个以上空格组成
  • # 表示注释

注意:

  • 不要使用tab,缩进是初学者容易出错的地方之一
  • 同一层级缩进必须对齐

YAML的键值表示方法

  • 采用冒号分隔
  • : 后面必须有一个空格

YAML 数组表示方法

  • 使用一个短横杠加一个空格-

Jinja2模版简介

Jinja2是什么

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

为什么要学习Jinja2模版

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

Jinja2模版基本语法

  • 模板的表达式都是包含在分隔符"{ { }}"内的
  • 控制语句都是包含在分隔符"{% %}"内的
  • 模板支持注释,都是包含在分隔符"{# #}"内,支持块注释
  • 调用变量 { {varname}}
  • 计算 { {2+3}}
  • 判断 { {1 in [1,2,3]}}

Jinja2模版控制语句

{% if name == '诗仙' %}
李白
{% elif name == '诗圣' %}
杜甫
{% elif name == '诗魔' %}
白居易
{% else %}
李贺
{% endif %}
{% if name == ... ... %}
... ...
{% elif name == '于谦' %}
{% for method in [抽烟, 喝酒, 烫头] %}
{
  {do method}}
{% endfor %}
... ...
{% endif %}

Jinja2过滤器

  • 变量可以通过过滤器修改。过滤器与变量用管道符号( | )分割,也可以用圆括号传递可选参数,多个过滤器可以链式调用,前一个过滤器的输出会被作为后一个过滤器的输入

例如

playbook

playbook是什么
  • playbook是ansible用于配置,部署和管理托管主机剧本,通过playbook的详细描述,执行其中的一系列t
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值