Ansible与playbook基础

ansible七种武器

1.ansible命令

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

2.ansible-doc(重点!!!)

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

3.ansible-console

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

4.ansible-galaxy

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

5.ansible-playbook(重点!重点!重点!)

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

6.ansible-vault

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

7.ansible-pull

  • ansible有两种工作模式pull/push,默认使用push模式工作.pull和push工作模式机制刚好相反.
  • 适用场景:有大批量机器需要配置,即便适用高并发线程依旧需要话费大量时间
  • 通常在配置大批量机器的场景下使用,灵活性稍有欠缺,但效率几乎可以无线提升,对运维人员的技术水平和前瞻性规划有较高要求.

JSON简介

概述
  • JSON是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.
  • Json中的分隔符限于单引号" ’ " , 小括号 " ( ) " , 中括号 " [ ] " , 大括号 " { } " , 冒号 " : " 和逗号 " , "
  • Json特性:
    • JSON是纯文本
    • JSON具有"自我描述性"(人类可读)
    • JSON具有层级结构(值中存在值)
    • JSON可以通过JavaScript进行解析
语法规则
  • 数据在名称/值对中,键值对
  • 数据由逗号分隔
  • 大括号保存对象
  • 中括号保存数组
  • 键值对书写格式: “姓名”:“大锤”
YAML简介
  • 表达数据序列的格式
  • YAML结构通过空格展示
  • 数组使用 " - " 来表示,键值对使用 " : " 来表示
  • 使用固定的缩进风格,一般每个缩进级别由两个以上空格组成

Jinja2模板简介

概念

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

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

playbook

概念
  • playbook是ansible用于配置,部署和管理托管主机剧本,通过playbook的详细描述,执行其中的一系列tasks,可以让远端主机达到预期状态.playbook字面意思即剧本,现实中由演员按照剧本表演,在ansible中由计算机进行安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情.
playbook语法基础
  • playbook由YAML语言编写,遵循YAML标准
  • 同一个列表中的元素应该保持相同的缩进
  • playbook由一个或多个play组成
  • play中hosts, variables, roles, tasks 等对象的表示方法都是键值对中间以" : " 分割表示(冒号+空格)
  • YAML还有一点注意:它的文件开始行都应该是 — , 这是YAML格式的一部分,表名一个文件的开始.
---
- name: test ping
  hosts: all
  tasks:
    - name: 第一次
      ping: 
playbook构成
  • hosts: 定义将要执行playbook的远程主机组
    – 主机的集合,定义要执行任务的主机
  • vars: 定义playbook运行时需要使用的变量
  • tasks: 定义将要在远程主机上执行的任务列表
    – 命令的集合,每个play包含了一个task列表,一个task执行完毕之后,下一个task才会执行
  • handlers: 定义task执行完成以后需要调用的任务
  • playbook执行结果: 使用ansible-playbook运行playbook文件,输出内容为JSON格式,由不同颜色组成.绿色代表执行成功, *** 代表系统状态发生改变,红色代表执行失败.
---
- name: 添加用户
  hosts: db
  tasks:
    - name: 添加用户 "{{ username }}"
      user:
        name: "{{ username }}"
        group: users
        password: "{{ '123' |password_hash('sha512') }}"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值