ansible自动化运维工具(6)

目录 - 角色的使用

  • 利用角色简化 playbook
      • 1. ansible 角色优点
      • 2. 在 playbook 中使用 ansible 角色
  • 3. 创建角色
      • 3.1 角色创建流程
      • 3.2 创建角色框架
      • 3.3 练习

利用角色简化 playbook

ansible可以自定义模块以便于调用,它也有一个特有的名称叫做角色

每个角色对应的服务可能不太一样,比如mysql,httpd,nginx,memcached

虽然每个角色(模块)的功能不一样,但是他们都以特定的目录结构进行组织。

1. ansible 角色优点

1.角色可以把内容分组,容易复用 
2.可以用角色定义系统基本信息:web 服务器、数据库服务器等
3.角色可以使大型项目易管理
4.角色可以由不同人并行开发

ansible 角色会把不同功能的 playbook 分开,一个标准的角色含有下列子目录

defaults 其中的 main.yml 包含角色变量的默认值
files 包含角色任务引用的静态文件
handlers 主要定义处理程序
meta 角色相关信息,如作者、许可证等
tasks 定义任务
templates 任务引用的 jinja2 模板
tests 可以包含清单和 test.yml 的 playbook,用于测试
vars 定义角色的变量

注: defaults在所有变量中优先级最低

2. 在 playbook 中使用 ansible 角色

2.1 示例

---
- hosts: www.example.com
  roles: 
    - role1 
    - role2
        var1:var1 
        var2:var2
 为 role2 定义了两个变量,任何 defaults 和 vars 中的变量都会被覆 盖

2.2 控制执行顺序

有时需要在角色之前或之后执行一些任务

 关键字:
  之前:pre_tasks
  之后:post_tasks

2.3 利用系统角色重用内容
ansible自动化运维工具(6)_第1张图片
ansible自动化运维工具(6)_第2张图片
ansible自动化运维工具(6)_第3张图片

2.4 时间同步角色示例
ansible自动化运维工具(6)_第4张图片
ansible自动化运维工具(6)_第5张图片

2.5 时区设置的 example
ansible自动化运维工具(6)_第6张图片
ansible自动化运维工具(6)_第7张图片
ansible自动化运维工具(6)_第8张图片
ansible自动化运维工具(6)_第9张图片
ansible自动化运维工具(6)_第10张图片
ansible自动化运维工具(6)_第11张图片
ansible自动化运维工具(6)_第12张图片

3. 创建角色

3.1 角色创建流程

三个步骤

1.创建角色目录结构
2.定义角色内容 
3.在 playbook 中使用角色

3.2 创建角色框架

ansible自动化运维工具(6)_第13张图片

[root@work roles]# tree my_role
my_role   具体的角色项目名称,比如 nginx、tomcat、php(自由设置)
├── defaults  用于为当前角色设定默认变量,此目录应当包含一个 main.yml 文件 
│   └── main.yml  main.yml,类似代码中的主函数,进行统一管理
├── files   用来存放由 copy 模块或 script 模块等模块调用的文件
├── handlers  用于定义此角色中触发条件时执行的动作,此目录应当包含一个
│   └── main.yml
├── meta    用于定义此角色的特殊设定及其依赖关系,此目录应当包含一个
│   └── main.yml
├── README.md   说明文件
├── tasks  用于定义当前角色的任务列表,此目录应当包含一个 main.yml 文件
│   └── main.yml
├── templates  用来存放 jinjia2 模板,template 模块会自动在此目录中寻找 jinjia2 模板文件
├── tests  用于存放测试 role 本身功能的 playbook 和主机定义文件,在开发测 试阶段比较常用,此目录应当包含一个 main.yml 文件和自身资源设定 invetory
│   ├── inventory
│   └── test.yml
└── vars
    └── main.yml  用于定义此角色用到的变量,此目录应当包含一个 main.yml 文件

8 directories, 8 files

3.3 练习

1. 创建并初始化

ansible自动化运维工具(6)_第14张图片

2. 配置 tasks 的 play

安装、启动和配置虚拟主机
ansible自动化运维工具(6)_第15张图片

3. 编写处理程序

ansible自动化运维工具(6)_第16张图片

4. 编写 html 文件

ansible自动化运维工具(6)_第17张图片

5. 配置模板
ansible自动化运维工具(6)_第18张图片

6. 编写roles的playbook
ansible自动化运维工具(6)_第19张图片
7. 运行
ansible自动化运维工具(6)_第20张图片
8. 测试
ansible自动化运维工具(6)_第21张图片

ansible自动化运维工具(6)_第22张图片

你可能感兴趣的:(ansible自动化运维工具(6))