自动化运维工具-Ansible的Roles的使用

简介: 自动化运维工具-Ansible的Roles的使用

一、Roles是什么?



编写playbook有个弊端就是无法实现复用


假设在同时部署Web、db、ha 时或不同服务器组合不同的应用就需要写多个yml文件。很难实现灵活的调用。。


roles 用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。


要使用roles只需要在playbook中使用include指令即可。


简单来讲,roles就是通过分别将变量(vars)、文件(file)、任务(tasks)、模块(modules)及处理器(handlers)放置于单独的目录中,并可以便捷地include它们的一种机制。


角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。


二、目录层级说明



roles每个角色中,以特定的层级目录进行组织


Mysql/ 角色


Files/ #存放有copy或script模块等调用的文件;’

Tepmlates/ #template模块查找所需要模板文件目录;


Tasks/


#定义任务;至少应该包含一个名为main.yml的文件;其他的文件需要在此文件中通过include进行包含。


Handlers/


#定义触发器;至少应该包含一个名为main.yml的文件;其他的文件需要在此文件中通过include进行包含。


Vars/


#定义变量;至少应该包含一个名为main.yml的文件;其他的文件需要在此文件中通过include进行包含。


Meta/ #定义变量;至少应该包含一个名为main.yml的文件;定义当前角色的特殊设定及其依赖


关系;其他的文件需要在此文件中通过include进行包含。


Default/ #设定默认变量时使用此目录中的main.yml文件。


三、调用Roles实例



#创建固定目录结构
[root@ansible roles]# tree
.
├── httpd
│   ├── files
│   │   └── httpd.conf
│   └── tasks
│       ├── copyfile.yml
│       ├── main.yml
│       └── user.yml
├── memcache
├── mysql
└── nginx
    ├── main.yml
    ├── tasks
    │   ├── group.yml
    │   ├── restart.yml
    │   ├── start.yml
    │   ├── user.yml
    │   └── yum.yml
    └── templates
8 directories, 10 files
[root@ansible roles]# cd nginx/
#定义执行的顺序
[root@ansible nginx]# cat main.yml 
- include: group.yml
- include: user.yml
- include: yum.yml
- include: start.yml
#每个任务分别写出来
[root@ansible nginx]# cd tasks/
[root@ansible tasks]# cat group.yml 
- name: create group
  group: name=nginx gid=80
[root@ansible tasks]# cat restart.yml 
- name: start service
  service: name=nginx state=restarted
[root@ansible tasks]# cat start.yml 
- name: start service
  service: name=nginx state=started enabled=yes
[root@ansible tasks]# cat user.yml 
- name: create user
  user: name=nginx group=nginx uid=80 system=yes shell=/sbin/nologin
[root@ansible tasks]# cat yum.yml 
- name: yum install package
  yum: name=nginx
编写yml调用nginx角色
[root@ansible ansible]# cat role_nginx.yml 
- hosts: wsr
  remote_user: root
  roles:
    - role: nginx
通过ansible-playbook来执行
[root@ansible ansible]# ansible-playbook role_nginx.yml 
PLAY [wsr] *****************************************************************************
TASK [Gathering Facts] *****************************************************************
ok: [192.168.100.10]
ok: [192.168.100.20]
PLAY RECAP *****************************************************************************
192.168.100.10             : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.100.20             : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0


相关文章
|
16天前
|
人工智能 运维 监控
当AI遇上自动化:运维测试终于不“加班”了
当AI遇上自动化:运维测试终于不“加班”了
153 9
|
2月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
247 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
23天前
|
人工智能 搜索推荐 UED
一个牛逼的国产AI自动化工具,开源了 !
AiPy是国产开源AI工具,结合大语言模型与Python,支持本地部署。用户只需用自然语言描述需求,即可自动生成并执行代码,轻松实现数据分析、清洗、可视化等任务,零基础也能玩转编程,被誉为程序员的智能助手。
|
24天前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
2月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
95 6
|
2月前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
74 4
|
3月前
|
人工智能 数据可视化 数据挖掘
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
本文深入分析了传统手动日报在数据孤岛、格式混乱和时效性差三大痛点,并探讨了自动化日报带来的效率提升、决策优化等四大核心价值。通过对板栗看板、SmartBrief、n8n 等六款主流工具的功能、适用场景及实战效果进行测评,为企业提供科学的选型建议与实施路径。
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
|
30天前
|
人工智能 缓存 自然语言处理
86_自动化提示:AutoPrompt工具
在当今人工智能领域,提示工程(Prompt Engineering)已成为释放大语言模型(LLM)潜能的关键技术。随着LLM规模和能力的不断增长,如何设计高效、精确的提示词成为研究和应用的焦点。然而,传统的手工提示工程面临着巨大挑战
|
3月前
|
人工智能 供应链 数据可视化
工作流梳理工具实战教程:手把手教你绘制第一张自动化流程图
本文剖析了团队因流程混乱导致重复劳动和效率低下的问题,提出通过工作流梳理提升协作效率的解决方案。总结了流程梳理的六大核心需求,并深度测评了6款主流工具,国内有板栗看板那,国外有kiss flow结合团队规模与需求提供选型建议,助力企业高效落地流程优化。
|
2月前
|
安全 搜索推荐 机器人
风险规则引擎-RPA 作为自动化依赖业务决策流程的强大工具
机器人流程自动化(RPA)是一种通过软件“机器人”自动执行重复性任务的技术,能大幅提升工作效率。它适用于财务、电商等领域的标准化流程,如账单处理和退货管理。然而,RPA在复杂决策场景中存在局限,需结合决策模型(DMN)和业务规则管理系统(BRMS)实现流程与决策的协同自动化,从而增强灵活性与业务价值。
下一篇
开通oss服务