详解Ansible中角色的使用

news2025/1/11 7:46:08

目录

一、ansible roles

1、ansible 角色简介

2、roles目录结构

3、role存放的路径在配置文件ansible.cfg中定义

4、创建目录结构

二、roles的写法及应用

1、覆盖变量

2、控制任务执行顺序

三、ansible—galaxy命令工具


一、ansible roles

1、ansible 角色简介

* Ansible roles 是为了层次化,结构化的组织Playbook
* roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们
* roles一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用的频率很高
* 以特定的层级目录结构进行组织的tasks、variables、handlers、templates、files等;相当于函数的调用把各个功能切割

2、roles目录结构

files                         ##存放copy或script等模块调用的函数
tasks                       ##定义各种task,要有main.yml,其他文件include包含调用
handlers                  ##定义各种handlers,要有main.yml,其他文件include包含调用
vars                         ##定义variables,要有main.yml,其他文件include包含调用
templates                ##存储由template模块调用的模板文本
meta                        ##定义当前角色的特殊设定及其依赖关系,要有main.yml的文件 defaults                   ##要有main.yml的文
件,用于设定默认变量
tests                         ##用于测试角色

3、role存放的路径在配置文件ansible.cfg中定义

roles_path = path/roles (默认目录:/etc/ansible/roles)

4、创建目录结构

$ ansible-galaxy init apache
$ ansible-galaxy list                 列出系统中的galaxy

建立文件,更改配置文件

 

不可以使用逗号空格和逗号的方式隔开 

下来我们建立一个自己的 

在哪执行ansible-galaxy就是在哪建立

写task中的动作 

play中指定了一个jinja2模板 

辅助模板

 

 

 

 

不同种类的写在不同的文件中 

如何使用?还是需要写playbook 

二、roles的写法及应用

1、覆盖变量

---
- hosts: server2
   roles:
      - role: role1
      - role: role2
        var1: value1         ##此处变量会覆盖roles中的定义变量

成功更改

 

写值时因为YES和NO是布尔值, 需要引号引起来,不然就会变成true和false

2、控制任务执行顺序

---
- hosts: server2
  roles:
     - role: role1                         ##角色任务
  pre_tasks:                              ##角色执行前执行的play
    - tasks1
  tasks:                                      ##普通任务
     - tasks2
  post_tasks:                             ##在角色和普通任务执行完毕后执行的play
    - tasks3
  handlers: 

pre_tasks

post_tasks

 

 

三、ansible—galaxy命令工具

* Ansible Galaxy 是一个免费共享和下载 Ansible 角色的网站,可以帮助我们更好的定义和学习roles。
* ansible-galaxy命令默认与https://galaxy.ansible.com网站API通信,可以查找、下载各种社区开发的 Ansible 角色
* ansible-galaxy在 Ansible 1.4.2 就已经被包含了
* 在galaxy.ansible.com网站查询roles

安装选择的角色

#install https://galaxy.ansible.com roles
$ansible-galaxy install geerlingguy.nginx


#install local roles
$ vim install_apache_role.yml
---
- src: file:///mnt/apache.tar.gz
name: apache
$ ansible-galaxy install -r install_apache_role.yml

网络安装:

web

 

本地角色安装: 

 

现在想安装/tmp下的本地角色

利用压缩包生成roles

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/357399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VNCTF 2023复现

文章目录象棋王子电子木鱼BabyGo象棋王子 签到题,直接在源码中找就ok。 找到一处编码,在控制台输出。 flag为:flag{w3lc0m3_t0_VNCTF_2023~~~} 电子木鱼 需要先理清代码逻辑。 存在三个路由。 一:/路由用来查看当前的功德数量…

兼职任务平台收集(二)分享给有需要的朋友们

互联网时代,给人们带来了很大的便利。信息交流、生活缴费、足不出户购物、便捷出行、线上医疗、线上教育等等很多。可以说,网络的时代会一直存在着。很多人也在互联网上赚到了第一桶金,这跟他们的努力和付出是息息相关的。所谓一份耕耘&#…

Git详解

Git1.Git简介1.1 Git是什么1.2 Git的作用1.3 Git的简介1.4 Git的下载和安装1.5 Git的安装目录结构如下2.Git代码托管服务2.1 常用的Git代码托管服务1.Git简介 1.1 Git是什么 Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、x…

java 基于maven多模块合并打包部署

项目环境 jdk 1.8spring 2.7.xmaven 3.6 项目结构 模块功能 client – 对外service common – 共用工具切面等 main – 启动类 goods – 子模块具体实现 模块间依赖关系 client – 无依赖 common – 无依赖 main – client、common、goods goods – client、common 具体P…

[软件工程导论(第六版)]第6章 详细设计(课后习题详解)

文章目录1 假设只有SEQUENCE和DO-WHILE两种控制结构,怎样利用它们完成 IF THEN ELSE操作?2 假设只允许使用SEQUENCE和IF-THEN-ELSE两种控制结构,怎样利用它们完成DO WHILE操作?3 画出下列伪码程序的程序流程图和盒图:4…

C/C++每日一练(20230219)

目录 1. 用队列实现栈 2. 判断是否能组成三角形 3. 只出现一次的数字 II 附录 栈(Stack)和队列(Queue)的异同 1. 栈和队列的相同点 2. 栈和队列的不同点 1. 用队列实现栈 请你仅使用两个队列实现一个后入先出(…

基于FFmpeg和Screen Capturer Recorder实现屏幕和声音的录制

当我们看到一些精彩的视频画面,但无法下载时,可以通过录屏的方式将视频和音频录制下来。 这个时候我们需要安装采集视频和音频的工具screen-capture-recorder。 以下是在windows10环境下,基于FFmpeg和Screen Capturer Recorder实现屏幕和声音…

带噪学习-概述

在实际应用的时候,我们的样本不会是完全干净的,即存在噪声样本。那使用存在噪声的样本时,我们如何更有效的进行模型学习呢?Label Dependent Nose样本选择(Sample Selection)第一种很直接的想法,…

PDDON在线画图是如何惊艳到你的?

1. 简介 PDDON是一款支持低代码(lowcode)的免费在线画图工具。可用于绘制架构图、流程图、UML、网络拓扑图、韦恩图、鱼骨图、思维导图、BPMN等,并且支持对象建模、数据库建模、代码/脚本生成。 PDDON与市面上现有的画图工具对比有哪些优势呢? 完全免费…

SpringJDBC的框架

JDBC框架概述目录概述需求:设计思路实现思路分析1.Spring 编程式事务管理2.方法:3.Marks4.网页解析器5.步骤src性能参数测试:参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full bu…

【pytorch】nn.SmoothL1Loss 函数使用

SmoothL1 Loss1、Smooth L1 Loss2、nn.SmoothL1Loss 函数使用1、Smooth L1 Loss 本方法由微软rgb大神提出,Fast RCNN论文提出该方法 1)假设x为预测框和真实框之间的数值差异,常用的 L1 loss、L2 Loss 和 smooth L1 loss 定义分别为&#xf…

浅谈Spring中事务管理器

由于事务部分代码在设计上整体比较简单,我自己觉得它在设计上没有什么特别让我眼前一亮的东西,所以下文更多的是侧重执行流程,能理解事务管理器等一众概念以及相关的变量含义,真正遇到Bug会调试,知道在什么地方打断点就…

前端FileReader对象实现图片file文件转base64

1、file转base64具体代码 // 图片file转base64方法(file文件,回调函数)fileToBase64(file, callback) {// 创建FileReader对象(不兼容IE)let reader new FileReader();// 将file转为base64 (异步操作&…

如何正确选择好用的投票平台微信公众平台投票链接链接投票平台

“年度人物楷模”网络评选投票_免费链接投票_作品投票通道_扫码投票怎样进行现在来说,公司、企业、学校更多的想借助短视频推广自己。通过微信投票小程序,网友们就可以通过手机拍视频上传视频参加活动,而短视频微信投票评选活动既可以给用户发…

driver.js web 新手交互引导工具库

前言 最近逛技术论坛发现了 driver.js 这个库,相信很多人在app中都碰到过功能引导的,这个库就可以用来做这个功能。web段项目很少见到功能引导的,但是用在uniapp 、浏览器插件 中感觉还是十分不错的,因此打算来简单学习一下&…

js 防抖函数 节流函数

某些事件中(如 onresize onscroll onkeydown onkeyup onmousemove …),会连续触发函数的执行,如果函数执行一些耗时的操作(如请求数据…),会影响性能,也有可能造成服务器压力。这时可以用 防抖函数 或 节流函数解决这种问题。 防…

分布式环境下的服务器时钟同步问题解决办法

一、分布式集群场景下时钟不同步会有什么问题? 如上面的示意图所示,分布式集群场景下如果各个服务器时间不一致,可能导致同一时间产生的数据,在处理过程中和数据库中,保存成了不同的时间,造成数据混乱。 …

大数据之Phoenix环境搭建

文章目录前言一、下载Phoenix安装包二、上传并解压三、拷贝服务包到各个hbase的lib目录下四、修改hbase的配置文件五、重启HBase集群六、连接Phoenix客户端前言 #博学谷IT学习技术支持# 本篇文章主要介绍Phoenix的环境搭建,Phoenix支持使用SQL语句操作HBase&#x…

JavaWeb6-线程常用方法

目录 1.线程等待join(共有3个方法重载) 1.1.public void join() 1.2.public void join(long millis) 2.线程终止 2.1.通过自定义标记符来中断(常用) 2.2.调用 interrupt() 方法来中断(常用,最推荐使用…

Ubuntu安装落雪音乐LX Music

网址: https://lxmusic.toside.cn/ 以 .deb 结尾的文件为在 Linux 系统上运行的版本,软件还有 .rpm/AppImage/pacman 格式的 Linux 包,但没有上传到网盘,可自行到项目发布页面下载。 在Ubuntu上安装比较简单。 安装成功 打开音乐…