Ansible——利用角色简化playbook

一、基础知识

1. 角色介绍

1.角色(roles) 用于层次性,结构化地组织playbook。简单的说,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中、并可以便捷地include他们的一种机制。 角色一般用于基于主机构建服务的场景中、但也可以是用于构建守护进程等场景中。
2.角色的优点:

  • 角色可以分组内容,从而与他人轻松共享代码
  • 可以编写角色来定义系统类型的基本要素:Web服务器、数据库服务器、Git存储库,或满足其他用途
  • 角色使得较大型项目更容易管理
  • 角色可以由不同的管理员并行开发
    3.ansible 角色会把不同功能的 playbook 分开,一个标准的角色含有下列子目录:
    (1)defaults:其中的 main.yml 包含角色变量的默认值。在所有变量中优先级最低
    (2)files:包含角色任务引用的静态文件
    (3)handlers:主要定义处理程序
    (4)meta:角色相关信息,如作者、许可证等
    (5)tasks:定义任务
    (6)templates:任务引用的 jinja2 模板
    (7)tests:可以包含清单和 test.yml 的 playbook,用于测试
    (8)vars:定义角色的变量

2. 使用角色

---
- hosts: www.example.com
  roles: 
    - role1
    - role2
       var: val1
       var: val2
#为role2定义了两个变量,任何 defaults 和 vars 中的变量都会被覆
盖
有时需要在角色之前或之后执行一些任务,这是就需要使用到关键字:
pre_tasks	#角色之前
post_tasks	#角色之后

二、利用系统角色重用内容

  • 安装系统角色:dnf install -y rhel-system-roles
  • 查看安装好的角色位置:ls -l /usr/share/ansible/roles
[root@localhost ~]# ls -l /usr/share/ansible/roles/
total 0
lrwxrwxrwx  1 root root  23 Dec 11  2019 linux-system-roles.kdump -> rhel-system-roles.kdump
lrwxrwxrwx  1 root root  25 Dec 11  2019 linux-system-roles.network -> rhel-system-roles.network
lrwxrwxrwx  1 root root  25 D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值