自动化运维利器-Ansible-Playbook

一、 Ad-Hoc 的问题

通过对 AD-HOC 的学习,我们发现 AD-HOC 每次只能在被管理节点上执行简单的命令。

而日常工作中,我们往往面临的是一系列的复杂操作,例如我们有可能需要安装软件、更新配置、启动服务等等一系列操作的结合。此时再通过 AD-HOC 去完成任务就有些力不从心了。

在这种场景下,Ansible引进了 PLAYBOOK 来帮忙我们解决这样复杂问题。

二、 PlayBook是什么

Playbook 也通常被大家翻译成剧本。可以认为它是Ansible 自定义的一?语言(可以将 Playbook 比作Linux 中的 shell,而 Ansible 中的 Module 可以比作为 Linux 中的各种命令。)

三、 YAML 学习

PlayBook遵循YAML 的语法格式。因此在学习PlayBook之前,我们必须要先弄明白YAML 相关知识点。

1、YAML特点

YAML 文件

  • 以 # 为注释符
  • 以 .yml 或者.yaml 结尾
  • 以 – – – 开始 , 以 … 结束, 但开始和结束标志都是可选的

2、基本语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时是使用Tab键还是使用空格一定要达到统一,建议使用空格。
  • 相同层级的元素必须左侧对?即可

YAML 支持的数据结构有三种

  • 字符串
  • 列表
  • 字典

2.1、字符串

2.2、列表

2.3、字典

2.4、混合结构

2.5、验证YAML 语法

四、 Playbook 的编写

4.1、常用属性

  • name 属性,每个play的名字
  • hosts 属性, 每个play 涉及的被管理服务器,同ad-hoc 中的资产选择器
  • tasks 属性, 每个play 中具体要完成的任务,以列表的形式表达
  • become 属性,如果需要提权,则加上become 相关属性
  • become_user 属性, 若提权的话,提权到哪个用户上
  • remote_user属性,指定连接到远程节点的用户,就是在远程服务器上执行具体操作的用户。若不指定,则默认使用当前执行 ansible Playbook 的用户

4.2、一个完整剧本

根据上一小节中介绍的真实的属性,一个含有一个Play 的Playbook 应该是如下的样子

4.3、tasks 属性中任务的多种写法

4.4、具有多个Play 的Playbook

4.5、如何对Playbook 进行语法校验

下面校验的方法,只能校验PlayBook是否正确,而不能校验YAML文件是否语法正确。

因为PlayBook 属于YAML 格式,我们同样可以使用检查YAML的语法格式的方法进行检查PlayBook的语法正确性。

4.6、如何运行PlayBook

4.7、如何单步跟从调试PlayBook

4.8、如何测试运行PlayBook

测试运行就是会执行完整个PlayBook ,但是所有Ta s k中的行为都不会在远程服务器上执行,所有执行都是模拟行为。

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树基础架构自动编排(Terraform)介绍Terraform8808 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月6日
下一篇 2022年9月6日

相关推荐