4.运维自动化-ansible中关于playbook的基本介绍

第四节 ansible中关于playbook的基本介绍

有10台服务器-----10台服务器准备做成页面服务器---- apache服务器
在ansible主机端 ----,
搭建镜像服务器----ftp/http
编辑yum配置文件----baseurl=ftp/http
使用模块-----group模块创建组
-----user模块创建用户
-----Yum模块批量安装软件
-----copy模块分发文件(配置文件+页面文件)
-----service模块开机启动服务
但是ansible每次只能执行一个模块命令,多个模块,就需要执行多条ansible命令
就会用到playbook----剧本

4.1playbook

1.当我们想要部署多台服务器的时候,按照我们的期望去工作的时候,任务往往有很多个,我们再一个一个的执行ansible命令势必效率也是很低的,在这种情况下,我们需要借助ansible的playbook功能
2.ansible的playbook依赖于YAML语法

4.2yaml介绍

YAML是一个可读性高的用来表达资料序列的格式,YAML参考了其他多种语言,
YAML(YAML Ain’t Markup Language,)YAML不是标记语言,即XML.不过在开发这种语言的过程当中,YAML其实是"Yet Another MarkupLanguage"(仍是一种标记语言)

4.3yaml特点

  1. 可读性好
  2. 和脚本语言的交互性好
  3. 使用实现语言的数据类型
  4. 有一个一致的信息模型
  5. 易于实现
  6. 可以基于流来处理
  7. 表达性强,扩展性号

4.4yaml语法

YAML的语法和其他高阶语言类似,并且可以简单表达清单,散列表.标量等数据结构,其结构(structure)通过空格来展示,序列(sequence)里的项用"-“来代替, 散列(Map)里面的键值对用”:“分隔”,如下实例:
4.运维自动化-ansible中关于playbook的基本介绍

就是用于标记信息

4.5 创建自动化运维的playbook剧本

4.5.1创建文件—以.yaml结尾

Vim yyn.yaml

4.5.2编辑文件—严格的语法格式

全部都要有空格,并且空格都是一样的
4.运维自动化-ansible中关于playbook的基本介绍

hosts用于指定要执行指定任务的=主机,其可以是一个或者多个以冒号分隔的主机组
remote_user则用于指定远程主机上的执行任务的用户
task的目的使用指定的参数执行模块,而在模块参数中可以使用变量.模块执行是幂等的,这意味着多次执行也是安全的,因为其执行结果一致
定义task可以使用"action: module options " 或" module: actions" 的格式.
#此处出现的两种格式后面的为旧版本格式
推荐使用后者以实现向后兼容,如果action一行的内容过多,也可使用在行首使用几个空白字符进行换行

4.5.3运行剧本

4.运维自动化-ansible中关于playbook的基本介绍4.运维自动化-ansible中关于playbook的基本介绍

4.6其他注意格式

1.remote_user也可以用于各个task中,也可以通过指定其通过sudo的方式在远程主机上执行任务,其可用于play全局或者某任务,甚至可以在sudo时使用sudo_user指定sudo切换的用户
例如:

  • hosts: all
    remote_user: lee
    tasks:
  • name: execute a command
    ping:
    remote_user: lee
    sudo: yes
  1. 在众多模块中,只有command和shell模块仅需要给定一个列表而无需使用"key=value"格式,
    例如:
    tasks:
  • name: disable selinux
    conmand: /sbin/setenforce 0
上一篇:第五章•自动化运维工具-Ansible流程控制


下一篇:移动平台WEB前端开发技巧汇总