当前位置: 首页 > news >正文

Ansible角色:高效开发与管理的秘密

描述角色结构

1.Ansible角色的优点:

可以由不同的用户并行开发,可以共享代码;

可以定义系统类型的基本要素;

可以使较大型项目更易管理。

2.Ansible角色子目录及其功能;

defaults/:存放角色的默认变量(优先级最低)。

vars/:存放角色的其他变量文件(优先级较高)。

tasks/:存放角色要执行的主要任务列表。

handlers/:存放角色定义的处理程序(由 notify 触发)。

templates/:存放Jinja2模板文件。

files/:存放角色部署所需的静态文件。

meta/:存放角色的元数据,如作者、依赖关系等。

3.在play中使用Ansible角色:

像任务一样,您可以将它们包含或导入在 tasks 列表中。

您可以创建一个 roles 列表,用于在 play 的任务之前运行特定的角色。

4.my handler任务运行三次:

在所有 pre_tasks 任务运行后

在所有 roles 任务和 tasks 任务运行后

在所有 post_tasks 运行后

5.ansible.builtin.import_role模块和ansible.builtin.include_role的区别:

import_role:静态导入。在Playbook解析时就导入角色,角色内容会成为主Playbook的一部分。不能用于循环,变量是早期解析的。

include_role:动态包含。在Playbook运行时才动态包含角色。可以用于循环,变量是运行时才解析的。

创建角色

1.角色创建流程:

使用命令 ansible-galaxy role init role_name 创建符合标准目录结构的角色骨架。

在各个子目录(如 tasks/, handlers/, templates/ 等)中编写具体内容。

在Playbook中引用该角色进行测试和部署。

2.角色开发中的推荐做法:

使用 ansible-galaxy role init 创建标准结构。

为角色设置明确的依赖关系(在 meta/main.yml 中)。

使用变量提高灵活性,并为变量提供合理的默认值(在 defaults/main.yml 中)。

保持角色专注于实现一个特定的功能或服务(高内聚)。

从外部内容源部署角色

1.ansible-galaxy命令行工具的作用:

可用于搜索角色,显示角色相关信息,以及安装、列举、删除或初始化角色。

从内容集合获取角色和模块

1.从多个来源获取ansible内容集合:

自动化中心(Automation Hub)

来源:红帽提供的官方服务,提供经红帽认证的集合。

特点:需要有效订阅,可获得红帽及合作伙伴的官方支持。

私有自动化中心(Private Automation Hub)

来源:组织内部搭建的私有中心。

特点:包含在Ansible自动化平台中,用于分发企业内部自己的集合。

Ansible Galaxy

来源:社区支持的网站。

特点:集合由社区开发和维护,是公共库,不提供官方支持。

第三方Git存储库或存档文件

来源:直接从Git仓库或tar压缩包获取。

特点:方式灵活,类似于下载Ansible角色。

2.ansible项目要和其他ansible内容集合:

要在项目目录中创建一个connections/requirements.yml文件,以列出项目所需的集合。

通过系统角色重用内容

1。两个关键属性及其作用:

hostname:要与其同步的NTP服务器的主机名。

iburst:一个布尔值,用于启用或禁用快速初始同步。在角色中默认为no,但您通常应将该属性设为yes。

2.红帽系统角色(Red Hat System Roles)以哪两种形式提供?

RPM软件包形式或Ansible内容集合形式。

3.如何指定项目所需的Ansible角色和内容集合?

可以通过requirements.yml文件指定,或使用ansible-galaxy手动安装到Ansible控制节点。

http://www.dtcms.com/a/362946.html

相关文章:

  • Day11--HOT100--25. K 个一组翻转链表,138. 随机链表的复制,148. 排序链表
  • 开源SOTA:阶跃发布端到端语音大模型Step-Audio 2 mini!
  • Cloudflare安全规则实用指南:从路径拦截到IP限制的10个经典范例
  • 使用coil加载图片更新不及时
  • 详解CAD批量打印PDF的黑白模式设置,快速搞定批量输出
  • 【C++框架#2】gflags 和 gtest 安装使用
  • Web3 开发者周刊 65 | DAT的崛起
  • 双八无碳小车cad+三维图+仿真+设计说明书
  • 【实测】安装最新Unity6的常规操作
  • 出版独著与合著的区别及评职称选择指南
  • `<meter> ` 元素 无需 JavaScript/CSS 实现密码强度提示
  • CTFshow系列——PHP特性Web89-92
  • 假设检验(超级详细易懂)
  • 大模型常用的数据类型FP32,BF16,FP16
  • Android --- 搭建JNI框架
  • Nature | 克隆拷贝数多样性影响肺癌生存
  • Ubuntu系统镜像源配置
  • 什么是Z-score标准化
  • 传统企业数字化转型投入巨大却收效甚微,其根源究竟在哪?
  • QSlider 和 QProgressBar 的区别与实践
  • 【高等数学】第十一章 曲线积分与曲面积分——第一节 对弧长的曲线积分
  • 【2025终极对决】Python三大后端框架Django vs FastAPI vs Robyn,你的选择将决定项目生死?
  • 基于SQLite索引的智能图片压缩存储系统设计与实现
  • Postman接口测试工具:高效管理测试用例与环境变量,支持断言验证及团队协作同步
  • Unity学习----【数据持久化】二进制数据(五)--由Excel自动生成数据结构类与二进制文件
  • 向成电子惊艳亮相2025物联网展,携工控主板等系列产品引领智造新风向
  • 深度集成Dify API:企业级RAG知识库管理平台解决方案
  • 一款高效、强大的子域名爬取工具,帮助安全研究者和渗透测试人员快速收集目标域名的子域名信息
  • 【设计模式】三大原则 单一职责原则、开放-封闭原则、依赖倒转原则
  • 【linux】firewall防火墙