自动化运维工具-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


相关文章
|
20天前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
13天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
94 17
Selenium:强大的 Web 自动化测试工具
|
18天前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
|
16天前
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
18天前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
17天前
|
运维 Ubuntu 网络协议
自动化运维:使用Ansible进行服务器配置管理
在现代IT架构中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和标准化服务器的配置管理过程。通过具体的代码示例和操作步骤,我们将展示如何快速部署应用、管理配置以及自动化日常任务,从而确保环境的一致性和可靠性。
|
28天前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。
|
1月前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
1月前
|
运维 应用服务中间件 Linux
自动化运维的利器:Ansible在配置管理中的应用
【10月更文挑战第39天】本文旨在通过深入浅出的方式,向读者展示如何利用Ansible这一强大的自动化工具来优化日常的运维工作。我们将从基础概念讲起,逐步深入到实战操作,不仅涵盖Ansible的核心功能,还会分享一些高级技巧和最佳实践。无论你是初学者还是有经验的运维人员,这篇文章都会为你提供有价值的信息,帮助你提升工作效率。
|
29天前
|
运维 监控 安全
自动化运维的利剑:Ansible在现代IT架构中的应用
在数字化浪潮中,企业对IT系统的敏捷性和可靠性要求日益提高。Ansible,一种简单但强大的自动化运维工具,正成为现代IT架构中不可或缺的一部分。它通过声明式编程语言YAM,简化了系统配置、应用部署和任务自动化的过程,显著提升了运维效率和准确性。本文将深入探讨Ansible的核心特性、应用场景以及如何有效整合进现有IT环境,为读者揭示其在自动化运维中的实用价值和未来发展潜力。
下一篇
DataWorks