Ansible - [11] Roles
前言
Q1:什么是Roles
在实际生产环境中,会编写大量的playbook文件来实现不同的功能。而且,每个playbook还可能会调用其他文件(变量文件),对于海量的、无规律的文件,管理是个问题。Ansible 从1.2版本开始支持Roles,Roles是管理ansible文件的一种规范(目录结构),Roles会按照标准的规范,自动到特定的目录和文件中读取数据。
Roles 目录结构

- defaults/main.yml:定义变量的缺省值,优先级较低
- files目录:存储静态文件的目录
- handlers/main.yml:定义handlers
- meta/main.yml:写作者、版本等描述信息
- README.md:整个角色(role)的描述信息
- tasks/main.yml:定义任务的地方
- templates目录:存放动态数据文件的地方(模板文件)
- vars/main.yml:定义变量,优先级高
创建 Role
ansible-galaxy命令可以创建、管理自己的roles(issue)

修改 Role
1、定义issue文件的模板文件 & 变量文件

2、修改任务文件,任务文件中不需要tasks关键字
Role的各个文件之间相互调用不需要写路径

以上配置会自动到template目录下寻找issue.j2文件
在Playbook中调用Role
方法一:在role相同目录下创建一个playbook调用
[root@node01 ansible]# cat ~/ansible/issue.yml
---
- hosts: agent
roles:
- issue
# - role2 # 支持加载多个role
方法二:在ansible.cfg设置roles_path=路径
[root@node01 ansible]# cat ~/ansible/ansible.cfg
[defaults]
remote_user = root
inventory = ./inventory
roles_path = ./roles
[privileges_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
[root@node01 ansible]#
ansible-galaxy
Ansible Galaxy 是官方提供的一个共享roles的平台(公共Roles仓库:https://galaxy.ansible.com)
# 联网搜索roles
[root@node01 ansible]# ansible-galaxy search 'httpd'
# 查看roles基本信息
[root@node01 ansible]# ansible-galaxy info acandid.httpd
# 下载roles到特定的目录
[root@node01 ansible]# ansible-galaxy install acandid.httpd -p ~/ansible/roles/
# 列出本地有哪些roles
[root@node01 ansible]# ansible-galaxy list -p roles/
下载Roles的方法
使用 ansible-galaxy install 或者编写 requirments.yml文件(示例以下)
[root@node01 ansible]# cat ~/ansible/roles/requirments.yml
# 格式一: 直接从Ansible Galaxy官网下载
- src: acandid.httpd
# 格式二: 从某个git服务器下载
- src: http://gitlab.com/xxx/xxx.git
scm: git
version: 56e00a54
name: nginx-acme
# 格式三: 下载tar包, 支持http、https、file
- src: http://example.com/myrole.tar
name: myrole
[root@node01 ansible]# ansible-galaxy install -r roles/requirements.yml -p ~/ansible/roles/
读取配置文件
roles/requirements.yml下载三个role到~/ansible/roles目录下
(END)
Ansible - [11] Roles的更多相关文章
- Ansible的roles标准化与Jenkins持续集成(三)
Ansible的roles标准化与Jenkins持续集成(三) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打 ...
- Ansible之roles模块--lnmp分布式部署
Ansible之roles模块--lnmp分布式部署 目录 Ansible之roles模块--lnmp分布式部署 1. role模块的作用 2. roles的目录结构 3. roles内个目录含义解释 ...
- Ansible:roles初始化系统
简介 本文介绍ansible的roles,通过roles来实现系统的初始化,其相当于将ansible的playbook拆分.本文通过Jenkins,传参,调用playbook来初始化系统. Githu ...
- ansible的roles使用
1.创建roles文件夹 mkdir roles 2.在roles文件夹里面创建文件夹 cd roles/ mkdir {nginx,uwsgi,redis,mysql} 3.cd nginx 4.m ...
- ansible基础-roles
一 简介 注:本文demo使用ansible2.7稳定版 在我看来,role是task文件.变量文件.handlers文件的集合体,这个集合体的显著特点是:可移植性和可重复执行性. 实践中,通常我们以 ...
- Git+Gitlab+Ansible的roles实现一键部署Nginx静态网站(一)--技术流ken
前言 截止目前已经写了<Ansible基础认识及安装使用详解(一)--技术流ken>,<Ansible常用模块介绍及使用(二)--技术流ken><Ansible剧本介绍及 ...
- Ansible playbook roles
1 概述 角色(roles):如果我们使用playbook写成一个文件,这个文件会很大,但是不方便组织,我们可以分组,把playbook根据功能,如handler,tasks等分门别类的放在在各自的 ...
- Ansible Playbook Roles and Include Statements
介绍 虽然可以在一个非常大的文件中编写一个playbook(您可能会以这种方式开始学习playbook),但最终您将需要重新使用文件并开始组织事情. 在基本级别,饱含任务的文件允许您将配置策略分解成较 ...
- Ansible之roles角色
一.roles简介 ansible自1.2版本引入的新特性,用于层次性.结构化地组织playbook.roles能够根据层次型结构自动装载变量文件.tasks以及handlers等.要使用roles只 ...
- ansible 模块 roles
setup 作用,用来查看用看内部的详细信息 ansible_all_ipv4_addresses # ipv4的所有地址 ansible_all_ipv6_addresses # ipv6的所有地址 ...
随机推荐
- Element Plus组件库el-select组件多选回显踩坑
前情 公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vu ...
- 浅聊web前端性能测试
最近正好在做web前端的性能测试,这次就来聊聊关于这个的测试思路~ 首先从用户的思维去思考,关于web前端性能,用户最看重的是什么...... 其实就是下面三个点: 1. 加载性能(即页面加载时间+资 ...
- Qt开源作品37-网络中转服务器
一.前言 用Qt做开发10年了,其中做过好多项目,基于现在web和移动互联网发展如此迅猛,大量的应用场景需要一个网络中转服务器,可以实现手机app或者其他客户端远程回控设备,现在物联网发展非常迅猛,这 ...
- matlab中mat文件的生成和读取
1.mat文件的生成 (1)直接在Matlab中创建并保存矩阵数据 打开Matlab软件,点击左上角文件(File),然后点击新建(new),选择变量(Variable),就新建了一个mat文件. 点 ...
- kubeadm 快速搭建 Kubernetes 集群
快速搭建 K8s 集群 角色 ip k8s-master-01 192.168.111.170 k8s-node-01 192.168.111.171 k8s-node-02 192.168.111. ...
- 获取不同型号手机小程序导航栏的高度(uniapp)
uni.getSystemInfo({ success: function(e) { Vue.prototype.StatusBar = e.statusBarHeight; let custom = ...
- C51--05---LCD1602调试工具
一.LCD1602调试工具 单片机调试工具: 数码管 液晶屏 串口 数码管需要不断进行扫描,一旦扫描不及时就会不断闪烁,并且可显示的数据太过局限: 串口需要使用电脑进行发送指令,不易操作与携带: 所以 ...
- .NET Core:架构、特性和优势详解
.NET Core:架构.特性和优势详解 在软件开发领域,保持领先地位至关重要.随着技术以指数级的速度发展,开发人员不断寻求高效.可扩展且多功能的解决方案来应对现代挑战..NET Core 就是这样一 ...
- Solution -「NOI 2017」「洛谷 P3825」游戏
\(\mathscr{Description}\) Link. 给大家看个乐子: link, 懒得概括题意啦. \(\mathscr{Solution}\) 对于没有 X 的情况, 显然可 ...
- JS利用浏览器进行语言识别
JS利用浏览器进行语言识别 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...