自动化运维工具Ansible之roles

简介:

一、概述

1.1 概念

roles 用于层次性、结构化地组织playbook。roles 能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。简单来讲,roles就是通过分别将变量(vars)、文件(file)、任务(tasks)、模块(modules)及处理器(handlers)放置于单独的目录中,并可以便捷地include它们的一种机制。角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。

1.2 roles目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@puppet-server web] # tree  /etc/ansible/
/etc/ansible/
├── ansible.cfg
├── hosts
└── roles
     ├── db                         #定义db角色
     │   ├── files
     │   │   └── my.cnf
     │   ├── handlers
     │   │   └── main.yml
     │   └── tasks
     │       └── main.yml
     ├── db.yml
     ├── php                         #定义php角色
     │   ├── files
     │   │   └── php.ini
     │   └── tasks
     │       └── main.yml
     ├── web                         #定义web角色
     │   ├── default                #设定默认变量时使用此目录中的main.yml文件。
     │   ├── files                  #存放文件,对应于tasks中copy模块或scripts模块中的文件
     │   │   └── httpd.conf
     │   ├── handlers               #定义触发器;至少应该包含一个名为main.yml的文件;其他的文件需要在此文件中通过include进行包含。
     │   │   └── main.yml
     │   ├── meta                   #定义变量;至少应该包含一个名为main.yml的文件;定义当前角色的特殊设定及其依赖关系;其他的文件需要在此文件中通过include进行包含。
     │   ├── tasks                  #定义任务;至少应该包含一个名为main.yml的文件;其他的文件需要在此文件中通过include进行包含。
     │   │   └── main.yml
     │   ├── templates              #template模块查找所需要模板文件目录;
     │   └── vars                   #定义变量;至少应该包含一个名为main.yml的文件;其他的文件需要在此文件中通过include进行包含。
     └── web.yml
注:没有存放文件的目录可以不创建

二、安装web与db环境


主机名 IP地址 作用
ansible-server 172.20.4.50 ansible控制端
ansible-1 172.20.4.51 安装web环境
ansible-2 172.20.4.52 安装db环境

2.1 配置httpd角色

1
2
3
4
5
6
7
8
9
10
cd  /etc/ansible/roles/web
cat  tasks /main .yml 
- name:  install  httpd
   yum: name=httpd state=present
- name: configuration httpd
   copy: src=httpd.conf dest= /etc/httpd/conf/httpd .conf
   notify:
   - restart httpd
- name: start httpd
   service: name=httpd state=started enabled= yes
1
2
3
cat  handlers /main .yml 
- name: restart httpd
   service: name=httpd state=restarted

将已经编辑好的httpd.conf配置文件存放到files目录下

1
2
3
4
5
cat  /etc/ansible/roles/php/tasks/main .yml 
- name:  install  php
   yum: name=php state=present
- name: configuration php
   copy: src=php.ini dest= /etc/php .ini

2.2 配置php角色

将已经配置好的php.ini 存放到php目录下的files目录内

1
2
3
4
5
6
7
cat  /etc/ansible/roles/web .yml 
- name: web
   remote_user: root
   hosts: agent
   roles:
   - php
   - web

查看整体web.yml

1
2
3
4
5
6
7
cat  /etc/ansible/roles/web .yml 
- name: web                            
   remote_user: root
   hosts: web                
   roles:
   - php
   - web

2.3 配置db角色

1
2
3
4
5
6
7
8
9
cat  /etc/ansible/roles/db/tasks/main .yml 
- name:  install  mysql service
   yum: name=mysql-server state=present
- name: configuration mysql
   copy: src=my.cnf dest= /etc/my .cnf
   notify:
   - restart mysqld
- name: start mysqld
   service: name=mysqld state=started enabled= yes
1
2
3
cat  /etc/ansible/roles/db/handlers/main .yml 
- name: restart mysqld
   service: name=mysqld state=restarted

将已经配置好的php.ini 存放到php目录下的files目录内

查看整体db.yml

1
2
3
4
5
6
cat  /etc/ansible/roles/db .yml 
- name: mysqld service
   remote_user: root
   hosts: db
   roles:
   - db

三、测试验证

dc3eeb4fbf809d852a5a2fb83e054584.png

安装web

f27a70980d1dfaff3610a74a9ade05bc.png

在web定义的主机组内的主机172.20.4.51上查看httpd与php配置

b4c2a6f20592d209f51464fcb37b34d8.png

安装db

e224d67689e10b37c3dd6de5c005fa10.png

在db定义的主机组内的主机上172.20.4.52查看mysql服务

5f3a38b355f462d798bc25ad56281b3a.png










本文转自 KaliArch 51CTO博客,原文链接:http://blog.51cto.com/kaliarch/1974264,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
监控 jenkins 测试技术
Ansible与Jenkins:自动化工具的对比
Ansible和Jenkins是自动化领域的两大巨头。Ansible专注于配置管理和任务自动化,采用无代理架构,使用YAML定义配置,具有幂等性和可扩展性。Jenkins则擅长持续集成和持续交付(CI/CD),支持丰富的插件生态系统,适用于自动化构建、测试和部署。两者各有优势,Ansible适合配置管理与大规模部署,Jenkins则在CI/CD方面表现出色。结合使用可创建更强大的自动化工作流,提升团队生产力和软件质量。选择工具时应根据具体需求决定。
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
409 11
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
运维 Ubuntu 网络协议
自动化运维:使用Ansible进行服务器配置管理
在现代IT架构中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和标准化服务器的配置管理过程。通过具体的代码示例和操作步骤,我们将展示如何快速部署应用、管理配置以及自动化日常任务,从而确保环境的一致性和可靠性。
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
运维 应用服务中间件 Linux
自动化运维的利器:Ansible在配置管理中的应用
【10月更文挑战第39天】本文旨在通过深入浅出的方式,向读者展示如何利用Ansible这一强大的自动化工具来优化日常的运维工作。我们将从基础概念讲起,逐步深入到实战操作,不仅涵盖Ansible的核心功能,还会分享一些高级技巧和最佳实践。无论你是初学者还是有经验的运维人员,这篇文章都会为你提供有价值的信息,帮助你提升工作效率。
|
运维 监控 安全
自动化运维的利剑:Ansible在现代IT架构中的应用
在数字化浪潮中,企业对IT系统的敏捷性和可靠性要求日益提高。Ansible,一种简单但强大的自动化运维工具,正成为现代IT架构中不可或缺的一部分。它通过声明式编程语言YAM,简化了系统配置、应用部署和任务自动化的过程,显著提升了运维效率和准确性。本文将深入探讨Ansible的核心特性、应用场景以及如何有效整合进现有IT环境,为读者揭示其在自动化运维中的实用价值和未来发展潜力。
|
运维 安全 Ubuntu
自动化运维:使用Ansible进行服务器配置管理
在现代IT基础设施中,自动化运维是确保高效、稳定和安全服务的关键。本文将深入介绍如何使用Ansible这一开源工具来简化服务器配置管理工作,从基础安装到高级应用,我们将一步步展示如何通过Ansible Playbooks实现自动化部署和维护,旨在帮助读者构建更加灵活和可扩展的运维体系。
401 7
|
运维 Ubuntu Linux
自动化运维:使用Ansible简化日常任务
在快节奏的IT世界中,时间就是一切。本文将揭示如何通过Ansible这一强大的自动化工具来节省宝贵的时间,从而提高效率和减少人为错误。我们将深入探讨Ansible的核心概念、安装过程以及如何编写简单的playbook来自动执行常见运维任务。无论你是新手还是有经验的系统管理员,这篇文章都将为你提供实用的知识和技能,让你能够更好地控制你的服务器环境。
|
运维 Devops 应用服务中间件
自动化运维的利剑:Ansible在现代IT架构中的应用
【10月更文挑战第42天】本文旨在揭示自动化运维工具Ansible如何革新现代IT架构,通过简化配置管理和部署流程,提升效率和可靠性。我们将探索Ansible的核心功能、语言特性以及其在DevOps文化中的角色。文章还将展示如何借助Ansible构建模块化和可重用的配置代码,实现快速迭代与部署,并确保系统一致性。通过阅读本文,运维人员将了解如何利用Ansible优化日常任务,加速产品上线速度,同时提高系统的稳健性。
394 5

热门文章

最新文章