1. playbook

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

1.1 编写和运行playbook

查看指定用户的临时命令
ansible自动化运维工具(2)

1.2 yaml介绍

yaml 格式通常以 yml 为扩展名,yaml 对于缩进量没有严格要求,但是有两个基本原则:
1.处于同一层次结构中同一级别的数据元素必须具有相同的缩进量’ 2.如果项目属于其他项目的子项,其缩进量必须大于父项

  • 注:
    临时命令查看用户的改playbook
    play本身是一个键值对集合,同一play中的键应当使用相同的缩进量
    ansible自动化运维工具(2)

1.3 安装 apache

ansible自动化运维工具(2)
ansible自动化运维工具(2)

1.4 确保服务开机启动

ansible自动化运维工具(2)
ansible自动化运维工具(2)
ansible自动化运维工具(2)

1.5 提高输出详细程度

ansible-playbook 默认输出不提供详细任务执行信息。

  • -v 参数提供,共四个级别:
-v 显示任务结果
-vv 显示任务结果和任务配置
-vvv 包含关于与受管主机的连接信息
-vvvv 增加连接插件相关的额外详细程度选项(包括受管主机上用于执行脚本的用户及所 执行的脚本)

ansible自动化运维工具(2)

1.5.1 执行空运行

ansible自动化运维工具(2)

空运行会报告执行这个 playbook 将会发生什么,但不会改变目标主机

1.6安装、配置默认发布页并启动 apache

1.6.1 检测语法
1.6.2 创建配置文件和清单
1.6.3 默认发布页面
1.6.4 执行 playbook

ansible自动化运维工具(2)
ansible自动化运维工具(2)
ansible自动化运维工具(2)

1.6.5 测试

ansible自动化运维工具(2)

2.多个 play

2.1 模板

ansible自动化运维工具(2)

ansible-doc -l 列出所有模块
ansible-doc yum 列出 yum 的用法和示例
ansible-doc -s yum 终端中输出 yum 模块中各参数的用法

ansible自动化运维工具(2)

2.2 PLAYBOOK 语法变化

yaml 注释

This is a YAML comment
some data # This is also a YAML comment

yaml字符串

this is a string
‘this is a string’
“this is a string”

2.3 实验

实验环境:
1.主机名称:serverb.lab.example.com
ansible自动化运维工具(2)

ansible自动化运维工具(2)
ansible自动化运维工具(2)
ansible自动化运维工具(2)
ansible自动化运维工具(2)
测试:
1.serverb.lab.example.com主机上开启火墙和保证没有http服务
2.主机名称为work执行playbook

ansible自动化运维工具(2)
ansible自动化运维工具(2)
ansible自动化运维工具(2)

3. 管理变量

3.1 ansible 变量简介

3.1.1 变量内容

要创建的用户
要安装的软件包
要重启的服务
要删除的文件
要从互联网检索的文档

3.1.2 命名变量

变量名称必须以字母开头,并且只能含有字母、数字和下划线

错误 正确
web server web_server
westos.file remote_file
1st file file1
3.1.3 定义变量

三个范围级别

全局范围 从命令行或 ansible 配置设置的变量
play 范围 在 play 和相关结构中设置的变量
主机范围 由清单、事实收集或注册的任务,在主机组和个别主机上设置的变量

如果多个级别上定义了相同名称的变量,优先采用级别最高的变量,窄范围优先于广范围’

3.2 playbook 中的变量

3.2.1 在 playbook 中定义变量

1.常见方式:
在 playbook 开头的 vars 块中:
ansible自动化运维工具(2)

2.在外部文件定义 playbook 变量
ansible自动化运维工具(2)

3.2.2在 playbook 中使用变量

将变量名称放在花括号内即可
ansible自动化运维工具(2)

  • 注意:
    当变量用作开始一个值的第一元素时,必须使用引号

相关文章: