Ansible角色管理-Roles(实例演示!!!)

Roles的概述

Roles能够根据层次型结构自动装载变量文件、task以及handlers等。
简单来讲,Roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们。
Roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中。

Roles的目录

目录名称 具体含义
files 用来存放由copy模块或script模块调用的文件
templates 用来存放j正则模板,template模块会自动在此目录中寻找正则模板文件
tasks 此目录应当包含一个main.yml文件,用于定义此角色的任务列表,此文件可以使用include包含其它的位于此目录的task文件
handlers 此目录应当包含一个main.yml文件,用于定义此角色中触发条件时执行的动作
vars 此目录应当包含一个main.yml文件,用于定义此角色用到的变量
defaults 此目录应当包含一个main.yml文件,用于为当前角色设定默认变量
meta 此目录应当包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系

在playbook中使用Roles的步骤

  • 创建以roles命令的目录
#yum装完默认就有
mkdir /etc/ansible/roles/ -p 
  • 创建全局变量目录
mkdir /etc/ansible/group_vars/ -p
touch /etc/ansible/group_vars/all
#文件名自己定义,引用的时候注意
  • 在roles目录中分别创建以各角色名称命令的目录,如httpd
mkdir /etc/ansible/roles/common -p
  • 在每个角色命令的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录,用不到的目录可以创建为空目录,但不可以不创建
mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
  • 在每个角色的handlers、tasks、meta、defaults、vars目录下创建main.yml文件,千万不能自定义
touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
  • 在playbook文件中,调用各角色
vim /etc/ansible/site.yml

- hosts: webserver
  remote_user: root
  roles:
     - httpd
     - mysql

安装搭建LAMP架构实例演示

  • 创建服务组件工作目录
mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -p
  • 创建yml空文件
touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml
  • 编写httpd模块
#写一个简单的tasks/main.yml
vim /etc/ansible/roles/httpd/tasks/main.yml

- name: ensure apache is at the latest version
  yum: pkg={{ pkg }} state=latest

#定义变量,可以定义在全局变量中,也可以定义在roles角色变量中,一般定义在角色变量中
vim /etc/ansible/roles/httpd/vars/main.yml

pkg: httpd
  • 编写mysql模块
vim /etc/ansible/roles/mysql/tasks/main.yml

- name: ensure mysql is at the latest version
  yum: pkg={{ pkg }} state=latest

#定义变量
vim /etc/ansible/roles/mysql/vars/main.yml

pkg: mariadb*
  • 编写php模块
vim /etc/ansible/roles/php/tasks/main.yml

- name: ensure php is at the latest version
  yum: pkg={{ pkg }} state=latest

#定义变量
vim /etc/ansible/roles/php/vars/main.yml

pkg: php*
  • 编写roles实例
vim /etc/ansible/site.yml

- hosts: webserver
  remote_user: root
  roles:
   - httpd
   - mysql
   - php

#执行剧本
ansible-playbook site.yml 

执行完以后在远程主机上,查询验证指定服务是否安装

rpm -q httpd
httpd-2.4.6-90.el7.centos.x86_64
rpm -q mariadb
mariadb-5.5.64-1.el7.x86_64
rpm -q php
php-5.4.16-46.1.el7_7.x86_64

谢谢阅读!

原文地址:https://blog.51cto.com/14449521/2469085

时间: 2024-10-01 10:35:19

Ansible角色管理-Roles(实例演示!!!)的相关文章

L4 磁盘管理与实例演示

1.总结整理磁盘管理及文件系统管理中设计的各种命令的使用,并附注一定的示例: 涉及常用命令: fdisk,parted,mkfs,mke2fs,blkid,e2label,fsck,e2fsck,mount,free,mkswap,swapon,swapoff,df,du fdisk 分区管理子命令: p: 显示 n: 创建 d: 删除 t: 修改分区ID l: 列出所有支持ID类型 w: 保存退出 q: 放弃修改并退出 m: 获取帮助 partx命令: partx DEVICE partx -

Ansible剧本管理(实例解释!!!)

inventory主机清单 ansible默认的主机清单是/etc/ansible/hosts文件,主机清单可以手动设置,也可以通过Dynamic Inventory动态生成,一般主机名使用FQDN vim /etc/ansible/hosts [webserver] #方括号设置组名 www1.example.org #定义被监控主机,这边可以是主机名也可以是IP地址,主机名需要修改/etc/hosts文件 www2.example.org:2222 #冒号后定义远程连接端口,默认是ssh的2

基于吉日嘎底层架构的Web端权限管理操作演示-角色管理

上一篇介绍了用户管理,这篇来介绍角色管理,这是权限管理的核心部分,因为我们的权限管理系统是基于角色的,有个高大上的英文名叫RBAC(Role Based Acccess Control). 下面的这段演示视频,会介绍角色管理的如下功能: 新增.修改.锁定.解锁.删除.撤销删除 角色成员管理 角色菜单模块管理 导出角色数据 优酷视频地址,手机无法播放的点击这里:http://v.youku.com/v_show/id_XMTc0MjU1NTcxMg==.html?f=28263687&o=1 下一

掌握Ansible角色(Roles)自动化部署配置LAMP架构

Roles简介: Ansible为了层次化.结构化地组织Playbook,使用了角色(roles).Roles能够根据层次型结构自动装载变量文件.task以及handlers等.简单来讲,roles就是通过分别将变量.文件.任务.模块及处理器放置于单独的目录中,并可以便捷地include它们,roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中.? 在一个playbook中创建使用Roles的步骤: 1.创建以roles命令的目录. * mkdir /etc/ansibl

自动化运维工具ansible 角色Roles介绍(三)

一.角色(roles)介绍角色定制:roles 对于以上所有的方式有个弊端就是无法实现复用假设在同时部署Web.db.ha 时或不同服务器组合不同的应用就需要写多个yml文件.很难实现灵活的调用. roles 用于层次性.结构化地组织playbook.roles 能够根据层次型结构自动装载变量文件.tasks以及handlers等.要使用 roles只需要在playbook中使用include指令即可.简单来讲,roles就是通过分别将变量(vars).文件(file).任务(tasks).模块

roleManager与角色管理授权

总览地址 https://msdn.microsoft.com/zh-cn/library/9ab2fxh0.aspx 其中基本概述是第一篇:了解角色管理 来自 <https://msdn.microsoft.com/zh-cn/library/5k850zwb.aspx> 第二篇是类的参考而已,以后进阶使用时可供查询之用. 最后一篇是介绍自定义角色提供程序RoleProvider要重写的方法及方法的描述. 若要使用角色管理,首先要启用它,并配置能够利用角色的访问规则(可选).然后可以在运行时

jmeter实例演示

Jmeter 是比较轻便的性能测试工具,下面根据一个实例演示下jmeter的常见用法 一.前期准备,在使用之前,先分析测试需求,比如:需不要登录?需不需要监视服务器性能?多线程还是多循环?需不需根据流量回放设计不同接口的请求数?有了目标后,可根据需求设计对应的测试方案. 1.  为了简单展示jmeter的使用,本实例设计如下:需求登录,登录一次即可 2.  需同时监控服务器性能 3.  需查看接口的性能,比如响应时间,吞吐量等 4.  线程数设置为1,循环数为10 二.实例演示 1.启动jmet

MongoDB的内置角色 Built-In Roles

关于芒果的权限控制说白了就是定义 Role(角色) 来控制对数据库进行的操作(调用的方法比如查询方法find). 系统内置的Role分为 以下几大类: Database User Roles 这个是针对非系统数据库和部分系统表的角色组 Database Administration Roles 可以操作所有数据库 Cluster Administration Roles 管理员族 针对整个系统进行管理 Backup and Restoration Roles 备份还原角色组 All-Databa

ansible应用管理

实验环境: 主控机:192.168.1.9(centos 7.5)被控机:192.168.1.8(centos 7.5);192.168.1.7(centos 7.4);192.168.1.6(cnetos 6.9)虚拟机:vmware 14做ansible实验前,必须做好主控机的基于被控机的key验证登录具体参照前面的博文中的基于key验证.http://blog.51cto.com/13698281/2118972 安装ansible rpm包安装: EPEL源 yum install an