Ansible-playbook简介

什么是playbook?

简单点说,playbook就是ansible用于配置,部署和管控节点机器的剧本,将一系列命令的集合归一使用,类似于shell脚本,不过更加强大.

playbook与shell脚本比对

它们功能形似,playbook和shell脚本一样,都是批量处理任务.都是把很多命令组合到一起,加入对应条件判断等,要说区别就是命令结构和被执行场景有所不同;

shell脚本由一条条命令构成,一般只在当前的服务器运行;

playbook中是有一个个task任务构成,每个task都可以当做shell中的一条命令,playbook不止在一个服务器上执行,因此它需要在其中指定运行该playbook的服务器名.而且playbook有着自己的语法格式

playbook语法格式

playbook由YMAL语言编写,YMAL格式类似于JSON格式,便于写读和理解,它的格式如下:

#格式
1.文件的第一行应该以 "---"这三个连续字符开始,代表了YAML文件的开始

2.在一行中, # 后面的内容代表注释,python,ruby,shell都是如此

3.YAML中的列表元素以"-"开头然后紧接着一个空格,后面为元素内容

4.在同一个列表中的元素应该保持相同的缩进,否则会当作错误处理

5.play中hosts ,variables,roles,tasks等对象的表示方法都是键值对,中间以 ":"分割,且":"后面还要增加一个空格.

6.文件名称后缀为 xxx.yml/yaml #示例 --- #复制file - hosts: task01 remote_user: root tasks: - name: copyfile copy: src=/etc/passwd dest=/tmp/data

Ansible-playbook使用

playbook核心参数

hosts    #主机组
tasks    #任务列表
vars     #变量,如下有几种设置方式
template   #jinja2模板语法
tags         #标签
handlers   #由一定条件出发,就是notify咯

① 基本参数

#写法
--- #文件开头 - hosts: dbservers #指定该playbook在哪个服务器上执行 remote_user: root #指定远程的用户名, vars: #表示定义变量 http_port: 80 #变量形式key: value user: coco tasks: #构成playbook的tasks,每个task都有 - name: 开始,name 指定该任务的名称 - name: copyfile copy: src=/etc/fstab dest=/tmp/fs - name: install redis yum: name=redis

② ansible-playbook -h命令分析

#常用命令
-C   --check   #检查但是不会真的执行
-f FORKS, --forks=FORKS  #并发,默认5个
--list-hosts     #列出匹配的主机
--sytax-check   #检查语法
-t #只执行某个task任务

 ③ 执行一个playbook命令 --->ansible-playbook p1.yml (单任务)

#p1.yml
---
- hosts: web
  tasks:
  - name: install bc
    yum: name=bc

Ansible-playbook

注解:如上图所示

- PLAY表示执行hosts 中web组远程机器

- 第一个TASK表示正在收集两台远程机器的数据信息,采集成功为显示绿色,代表执行成功

- 第二个TASK表示我们要执行任务的名称,执行成功后状态发生变化为黄色,状态没变化为绿色,执行失败为红色.

 

④ 再来个例子ansible-playbook p2.yml(多任务)看看效果,会更加清楚

#p2.yml
---
- hosts: web
  remote_user: root
  tasks:
  - name: createuser
    user: name=coco
  - name: deluser
    user: name=coco state=absent 
p2.yml

相关文章:

  • 2022-12-23
  • 2022-01-07
  • 2022-01-26
  • 2022-02-20
  • 2021-09-30
  • 2021-08-15
猜你喜欢
  • 2021-07-05
  • 2021-07-13
  • 2022-01-22
  • 2021-07-09
  • 2021-12-03
相关资源
相似解决方案