自动化运维工具--ansible详解(playbook与jinja2)

一、Ansible playbook简介

playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。 通过 playbook 的详细描述,执行其中
的一系列 tasks ,可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的一系列 todo-list ,而被控节点必须要完成。 也可以这么理解,playbook 字面意思,即剧本,现实中由演员按照剧本表
演,在Ansible中,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及组织计算机处理各种
各样的事情。

二、使用场景

执行一些简单的任务,使用ad-hoc命令可以方便的解决问题,但是有时一个设施过于复杂,需要大量的操作时
候,执行的ad-hoc命令是不适合的,这时最好使用playbook。 就像执行shell命令与写shell脚本一样,也可以
理解为批处理任务,不过playbook有自己的语法格式。 使用playbook你可以方便的重用这些代码,可以移植
到不同的机器上面,像函数一样,最大化的利用代码。在你使用Ansible的过程中,你也会发现,你所处理的大部
分操作都是编写playbook。可以把常见的应用都编写成playbook,之后管理服务器会变得十分简单。

三、Ansible playbook格式

1、格式简介

playbook由 YMAL语言编写。YAML( /ˈjæməl/ )参考了其他多种语言,包括:XML、C语言、Python、Perl 以
及电子邮件格式RFC2822,Clark Evans在2001年5月在首次发表了这种语言,另外Ingy döt Net与OrenBen-Kiki也
是这语言的共同设计者。 YMAL格式是类似于 JSON 的文件格式,便于人理解和阅读,同时便于书写。首先学
习了解一下YMAL的格式,对我们后面书写playbook很有帮助。以下为playbook常用到的YMAL格式: 1、文
件的第一行应该以 “—” (三个连字符)开始,表明YMAL文件的开始。 2、在同一行中,#之后的内容表示注释,
类似于shell,python和ruby。 3、YMAL中的列表元素以”-”开头然后紧跟着一个空格,后面为元素内容。
4、同一个列表中的元素应该保持相同的缩进。否则会被当做错误处理。 5、play 中 hosts,variables,
roles,tasks等对象的表示方法都是键值中间以":“分隔表示,”:"后面还要增加一个空格。

---
#安装与运行mysql服务
- hosts: node1
 remote_user: root
 tasks: 
 - name: install mysql-server package
 yum: name=mysql-server state=present
 - name: starting mysqld service
 service: name=mysql state=started

2、核心元素

Hosts :主机组; Tasks :任务列表; Variables :变量,设置方式有四种; Templates :包含了模
板语法的文本文件; Handlers :由特定条件触发的任务;

3、基本组件

Hosts :运行指定任务的目标主机 remoute_user :在远程主机上执行任务的用户; sudo_user :
tasks :任务列表
格式: tasks: – name: TASK_NAME # 这一步的名称 module:
arguments notify: HANDLER_NAME handlers: – name:
HANDLER_NAME # 这一步操作目的(注释) module: arguments
模块,模块参数 :
格式: (1) action: module arguments (2) module: arguments 注意:shell
和command模块后面直接跟命令,而非key=value类的参数列表;
handlers :任务,在特定条件下触发;接收到其它任务的通知时被触发;

4、variables部分

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值