11.Ansible Roles介绍

news2024/11/25 0:40:34
  1. 什么是Ansible角色?
    就像在现实世界中给不同的人分配角色一样,让他们成为医生工程师, 宇航员, 警察,或者厨师。在Ansible的世界里, 你可以给服务器分配角色,让它们成为数据库服务器、 Web服务器、 Redis消息服务器或备份服务器。
    在这里插入图片描述
    在现实世界中分配一个角色意味着做一切需要做的事情。例如,使某人成为医生或工程师, 送人到医学院获得医学学位,完成住院医师计划, 并最终获得执业许可证。或者, 如果是工程师,那就去工程学院获得学士学位,获得研究生学位。
    在自动化领域, 分配角色意味着做所有需要做的事情。例如服务器成为数据库服务器, 安装MySQL所需的先决条件安装MySQL软件包本身配置MySQL服务, 最后与我们的用户一起配置数据库。对于Web服务器,它将再次安装Nginx的先决条件, 安装Nginx包,配置Nginx服务和配置自定义网页。
    在这里插入图片描述
    到目前为止, 我们已经知道如何使用Ansible Playbook完成这些任务。这里有一个简单的Playbook可以做到这一点。但是, 如果能在剧本中做到这一点,为什么你需要角色呢?
    在这里插入图片描述
    MySQL数据库上安装和执行基本配置的这组任务将仍然是最常见的。一旦一个人开发了这个Ansible Playbook,它就可以与数十万其他试图做同样事情的人分享,可以将这段代码打包到一个角色中,并在以后重用它, 而不是所有人都需要重头开始写这段代码。
    Roles的作用其实就是便于分享你的Playbook,便于其他人使用。
    下一次, 只需分配创建的角色, 在这样的Playbook中,无论是单台服务器还是数百台服务器, 您所需要得就是这些角色.因此, 角色的主要目的是使您的工作可重用,无论它是用于组织内的其他任务或项目, 还是用于全球其他人。例如下图的例子,可以把安装mysql的步骤定义成role,然后Playbook里面直接使用就行。
    在这里插入图片描述

  2. 角色帮忙组织代码,Ansible Galaxy社区
    角色还可以帮助您在Ansible中组织代码。vars目录中这些任务使用的所有变量。任何默认值都将保存在defaults目录中。所有处理程序都将进入handlers目录。Playbook使用的任何模板都将进入templates目录。
    在这里插入图片描述
    角色还有助于与Ansible社区中的其他人共享您的代码。Ansible Galaxy就是这样一个社区,在那里你可以找到数千个角色, 几乎可以完成你能想到的任何任务。比如安装和配置不同的Web服务器、不同的数据库服务器、 自动化工具、监控工具、 打包工具、 安全软件等。因此, 在开始编写这些Playbook之前,可以先到这个社区搜索一下。可能有人已经为它创建了一个角色。
    在这里插入图片描述

  3. 如何使用自己创建好的角色
    那么, 如何开始使用角色呢?这很简单, 正如我们上面讨论的那样,我们创建角色所需的目录结构, 但您不必手动执行此操作。Ansible Galaxy有一个整洁的工具,可以为你创建一个骨架。
    使用ansible-galaxy init命令初始化并创建目录结构,然后写好角色的相关代码。
    在这里插入图片描述
    那么, 您如何使用创建好的角色呢?假设我在一个名为“my-playbook”的目录中有playbook.yml,这个文件包含一个简单的剧本,用于在我的服务器上安装和配置MySQL。可以使用roles指令使用创建的mysql角色,
    但是如果这样做, playbook.yml怎么知道mysql这个角色在哪里?可以在系统的任何位置创建该角色。playbook.yml如何找到那个角色?
    有不同的方法来做到这一点。可以在我的剧本文件夹中创建一个名为roles的目录,并将创建的角色移到该目录下。当playbook.yml运行时, Ansible会在roles目录下查找名为MySQL的角色,这是一种方法。或者, 您可以将角色移动到系统上/etc/ansible/roles位置为角色指定的公用目录中。这是Ansible在剧本目录中找不到角色时搜索角色的默认位置。当然, 可以在Ansible配置文件中修改默认的roles路径。
    在这里插入图片描述
    创建角色并将其放置在角色目录中并在playbook中使用后,您可以通过GitHub存储库将其上传到Ansible Galaxy, 从而与社区共享。

  4. 如何使用Ansible Galaxy中的角色
    相反, 您希望找到一个现有的角色, 并将其用于您的playbook中。要查找角色, 您可以从Ansible Galaxy UI进行搜索, 或使用ansible-galaxy search xx命令从命令行界面进行搜索。
    在这里插入图片描述
    要使用角色, 请使用角色名称运行ansible-galaxy install命令。该角色将被提取到/etc/ansible/roles位置的默认角色目录中。
    现在可以在剧本中使用角色,方法是将相同的名称指定为字符串数组,即角色名称。另一种指定角色的方法是使用字典数组,这将允许您向角色传递其他参数。例如通过become指令提升权限来执行角色,指定或传递其他参数(如mysql_user_name选项),如下所示。
    在这里插入图片描述
    总之, 角色让开发、 重用和共享Ansible剧本变得非常容易。
    若要将单一服务器设定为同时具有数据库和Web应用程序,可以使用下面左边的playbook需要将这两个角色指派给该服务器。要在不同的服务器上分别配置它, 可以在playbook创建两个Play(右边),每台服务器一个Play, 并为它们分配各自的角色.
    在这里插入图片描述

  5. 查看当前安装的ansible角色相关信息
    要查看当前安装的角色列表,可以使用ansible-galaxy list命令。
    要查看Ansible配置,请使用ansible-config dump命令。
    在安装角色时,您可以使用-p选项将其安装在当前目录下的roles目录下。
    在这里插入图片描述
    更多关于Ansible的文章,请参考我的Ansible专栏:https://blog.csdn.net/u011069294/category_12331290.html

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

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

相关文章

LCUSB-13xB/M 系列高性能 USB 接口 CAN 卡在医疗体外诊断仪上的应用

1,LCUSB -13xB/M 系列高性能 USB 接口 CAN 卡的功能介绍 LCUSB -13xB/M 系列高性能 USB 接口 CAN 卡,坚固 金属外壳,具有更佳 EMC 性能,插到用户设备 USB 接口 上,快速扩展出 1~2 路 CAN 通道,可作为组件集…

java基础学习

一、注释 1)当行注释 // 2)多行注释 /* ... */ 3)文档注释 (java特有) /** author 张三 version v1.0 这是文档注释,需要将class用public修饰 */ 二、关键字 (1)48个关键…

tinker CAD入门操作

入门 - 导航和菜单 欢迎来到设计世界! 设计是发现所有尚未完成的东西的艺术。它是学习和教学,打破和制造,看到和展示的平等部分。 设计就是分享! Tinkercad是一款功能强大且易于使用的工具,用于创建数字设计&#xff0…

CVE-2023-33246 Apache RocketMQ RCE

0x01 漏洞介绍 Apache RocketMQ是一款开源的分布式消息和流处理平台,提供了高效、可靠、可扩展的低延迟消息和流数据处理能力,广泛用于异步通信、应用解耦、系统集成以及大数据、实时计算等场景。 漏洞的官方描述为当RocketMQ多个组件,包括N…

chatgpt赋能python:Python分三行输入:提高编程效率的绝佳方法

Python分三行输入:提高编程效率的绝佳方法 Python是一种高级编程语言,以简洁、易读的代码著称。Python分三行输入是一种旨在提高编程效率的技术,它可以减少代码阅读时间、降低语法错误率,并且让代码更加易于维护。在本文中&#…

0501源码分析-启动过程-springboot2.7.x系列

文章目录 1前言2 启动第一阶段2.1 deduceFromClasspath 推断应用类型2.2 getSpringFactoriesInstances(Class)2.3 ApplicationContextInitializer2.4 ApplicationListener2.5 自定义接口实现配置示例 3 启动第二阶段3.1 SpringApplicationRunListener3.2 容器创建和准备 4 总结…

11. 数据结构之二叉树

前言 上一节,简单概述了树这种数据结构,以及树结构向下,具有某些一些特征的树,比如二叉树,B树,B树,堆等。其中,二叉树是一个很重要的模块。也是在一些技术面试中,可能会…

【Vue】学习笔记-Vuex

Vuex 理解VuexVuex是什么什么时候使用VuexVuex 工作原理图求和案例使用纯vue编写 搭建Vuex环境使用Vuex编写求和案例getters配置项四个map方法的使用多组件共享数据案例模块化命名空间 理解Vuex Vuex是什么 概念:专门在vue中实现集中式状态(数据) 管理的一个vue插…

基于P-Tuningv2轻量微调和推理chatglm

类ChatGPT的部署与微调(下):从GLM、ChatGLM到MOSS、ChatDoctor、可商用_v_JULY_v的博客-CSDN博客随着『GPT4多模态/Microsoft 365 Copilot/Github Copilot X/ChatGPT插件』的推出,绝大部分公司的技术 产品 服务,以及绝大部分人的工作都将被革…

【CMake 入门与进阶(2)】CMake编译设置——多个源文件编译及生成库文件(附代码)

多个源文件 上篇我们学习了单个源文件的cmake 的编译,不过一个源文件的例子似乎没什么意思,我们再加入一个hello.h 头文件和 hello.c 源文件。在 hello.c 文件中 定义了一个函数 hello,然后在 main.c 源文件中将会调用该函数&#xff…

客服都要下岗了? 当ChatGPT遇见私有数据,秒变AI智能客服!

用ChatGPT搭建基于私有数据的WorkPlus AI客服机器人这个想法,源于WorkPlus售前工作需求。在ChatGPT之前,其实对话式AI一直在被广泛使用在客服场景,只不过不大智能而已。比如你应该看到不少电商客服产品,就有类似的功能&#xff0c…

车站信息管理系统(面向对象程序设计python版)

一、基本概述 1.项目背景 随着大数据时代的发展,大数据抓取了人们最想要的信息,数据查询能帮助用户获取更有用的信息,让每个人都能享受到大数据带给生活的高效和便捷。 2.设计目的 为了大大缩减人们出行选择站点所需时间,为了让人们在陌生地区,在对当地交通不熟的情况…

Redis数据类型之(哈希Hash和集合Set)

Redis数据类型之(哈希Hash和集合Set) 一定注意看红色注意项。 哈希(Hash): Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存…

promethues 之PromQL数据类型介绍(二)

promethues 之PromQL数据类型介绍(二) 1、PromQL 介绍 PromQL是promethues 监控系统内置的一种查询语言,类似于MySQL的SQL语句,该语言仅用于读取数据。PromQL是我们学习Promethues最困难也是最重要的部分。当Promethues从系统和服务收集到指标数据时&…

PIP-Net:用于可解释图像分类的基于patch的直观原型

文章目录 PIP-Net: Patch-Based Intuitive Prototypes for Interpretable Image Classification摘要本文方法模型结构Self-Supervised Pre-Training of PrototypesTraining PIP-NetScoring Sheet ReasoningCompact Explanations 实验结果 PIP-Net: Patch-Based Intuitive Proto…

bug 记录 - 接口被重复调用,响应时长不同,结果被覆盖的问题

发现问题与调试过程 需求:输入框中输入关键字,根据关键字去调用接口,返回模糊查询的结果集合。问题:输入的关键字越少,接口响应时间越长。例如:输入“阿”,接口响应时间大概是 5 秒&#xff0c…

【计算机网络中ip概念总结】【平时我们说的ip 到底是什么】【计算机网络中 ip地址是什么】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

【Linux】重定向dup

文章目录 前言重定向的原理dup函数添加重定向功能到myshell 前言 了解重定向之前需要明白文件描述符的工作规则,可以看这篇文章:文件系统 最关键的一点是:在进程中,在文件描述符表中,会将最小的、没有被使用的数组元…

vscode整合gitee

vscode需要下载的插件 第一个可以多仓库进行操作 第二个主要是用于仓库的管理和展示 vscode的gitee操作 1、按F1,搜索gitee 2、根据提示进行操作 标1的是第一个插件的操作 标2的是第二个插件的操作 绑定用户私钥 两个插件绑定私钥的方式不同, gitee的私…

这本数智平台白皮书讲透了大型企业数智化升级业务痛点

在以“升级企业数智化底座”为主题的2023用友BIP技术大会上,用友联合全球权威咨询机构IDC共同发布《建设数字中国 升级数智底座——企业数智化底座白皮书》,在这本数智平台白皮书里深入剖析了大型企业的数智化升级痛点。 大型企业普遍具有广域的业务覆盖…