Ansible-playbook 简介(理论+例子)

playbook是什么

  • playbook是ansible用于配置,部署和管理托管主机剧本,通过playbook的详细描述,执行其中的一系列tasks,可以让远端主机达到预期状态

  • 也可以说,playbook字面意思即剧本,现实中由演员按照剧本表演,在ansible中由计算机进行安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情.

为什么要使用playbook
  • 执行一些简单的任务,使用ad-hoc命令可以方便的解决问题,但有时一个设施过于复杂时,执行ad-hoc命令是不合适的,最好使用playbook
  • playbook可以反复使用编写的代码,可以放到不同的机器上面,像函数一样,最大化的利用代码,在使用ansible的过程中,处理的大部分操作都是在编写playbook

playbook的语法基础

playbook语法格式
- playbook由YAML语言编写,遵循YAML标准
- 在同一行中,#之后的内容表示注释
- 同一个列表中的元素应该保持相同的缩进
- playbook由一个或多个play组成
- play中hosts,variables,roles.tasks等对象的表示方法都是键值中间的" : " 分隔表示
- YAML还有一个小的怪癖,它的文件开始行都应该是 ---, 这是YAML格式的一部分,表明一个文件的开始
playbook构成
- hosts:定义将要执行playbook的远程主机组
- vars:定义playbook运行时需要使用的变量
- tasks:定义将要在远程主机上执行的任务列表
- handlers:定义task执行完成以后需要调用的任务
playbook执行结果
  • 使用ansible-playbook运行playbook文件,输出内容为JSON格式,由不同颜色组成便于识别
    – 绿色代表执行成功
    – ***代表系统代表系统状态发生改变
    – 红色代表执行失败
  • 第一个playbook
---
- name: test ping
  hosts: all
  tasks: 
    - name: 1 ping
      ping:

]# ansible-playbook myping.yml -f 5
– -f 并发进程数量,默认是5
– hosts行 内容是一个(多个)组或主机的patterns,以逗号为分隔符

  • tasks
    – 命令的集合
    – 每一个play包含了一个task列表(任务列表)
    – 一个task在其所对应的所有主机上(通过 host pattern 匹配所有主机)执行完毕之后,下一个task才会执行.
  • hosts
    – 主机的集合
    – 定义要执行任务的主机

playbook执行命令 (例1)

–给web主机添加用户x1
–设置默认密码123,并把x1用户添加到users组

---
- hosts: web
  tasks:
    - name: create user x1
      user:
        name: x1
        group: users
    - name: set password
      shell: echo 123 | passwd --stdin x1

猜你喜欢

转载自blog.csdn.net/weixin_45942735/article/details/104288641