【Ansible 学习之旅】Ansible 介绍和架构

news2024/11/15 17:53:38

目录

  • Ansible 发展
  • Ansible 介绍
  • Ansible 组成


Ansible 发展

2012-03-09,发布0.0.1版
2015-10-17,Red Hat宣布1.5亿美元收购

官网:https://www.ansible.com/
官方文档:https://docs.ansible.com/


Ansible 介绍

Ansible 可自动管理远程系统并控制其所需状态。

在这里插入图片描述

Ansible 使用简单、人类可读的脚本(称为 playbook)来自动执行任务。 你可以在playbook中声明本地或远程系统所需的状态。 Ansible 可确保系统保持该状态。

作为自动化技术,Ansible 的设计遵循以下原则:

  • 无代理架构:Ansible 不需要在被管理的服务器上安装任何额外的软件或代理。这种设计减少了部署和维护成本,因为我们不必担心在每个服务器上都要安装和更新代理程序。
  • 简单性:Ansible 使用直观的 YAML 格式来编写自动化脚本(playbook)。YAML 语言简单易读,使得剧本不仅易于编写,而且也容易理解,甚至可以当作文档来使用。并且Ansible 利用已存在的 SSH 凭据来访问远程机器,无需额外的认证机制
  • 可扩展性和灵活性: Ansible 的模块化设计支持广泛的系统、云平台和网络设备,这使得它可以轻松且快速地扩展到不同的环境中。这种设计允许用户根据需要选择合适的模块来完成特定任务,提高了整体的灵活性。
  • 幂等性和可预测性:当目标系统已经符合剧本中定义的状态时,即使你重复运行剧本,Ansible 也不会对系统做出任何改变。这种特性保证了运行剧本的结果是一致且可预测的,有助于保持系统的稳定性和可靠性。

Ansible 组成

在这里插入图片描述
如上图所示,大多数 Ansible 环境有三个主要组件:

  1. 控制节点 (Control Node)
    控制节点是安装了 Ansible 的系统。我们可以在控制节点上运行 Ansible 命令,例如 ansible 或 ansible-inventory。这是发起自动化操作的地方。
  2. 清单 (Inventory)
    清单是一份列出并逻辑组织被管理节点的列表。我们在控制节点上创建清单文件来告诉 Ansible 需要管理哪些主机以及它们是如何分组的。清单文件通常包含主机名、IP 地址、变量和其他相关信息。
  3. 被管理节点 (Managed Node)
    被管理节点是指那些由 Ansible 控制的远程系统或主机。这些节点通常是我们希望进行配置管理、部署应用程序或其他自动化任务的目标系统。

除此之外,还有一些通用的组成部分:

  1. Playbooks
    剧本使用 YAML 语言编写,易于阅读、编写、分享和理解。
    剧本包含 Play(Ansible 执行的基本单位),并且是 ansible-playbook 命令操作的文件。

    • Roles(角色)是一种可重用的 Ansible 内容集合(任务、处理器、变量、插件、模板和文件),用于在 Play 中使用。要使用任何角色资源,必须将该角色导入到 Play 中
    • Tasks (任务)定义了要应用于被管理主机的“动作”
    • Handlers(处理器)任务的一种特殊形式,只有在前一个任务发出通知,导致状态 "已更改 "时才会执行。
  2. 模块 (Modules)
    模块是 Ansible 复制到并执行在每个被管理节点上的代码或二进制文件,以实现任务中定义的动作。
    每个模块都有特定的用途,例如管理特定类型数据库中的用户或管理特定网络设备上的 VLAN 接口。
    Ansible 模块按集合进行分组。

  3. 插件 (Plugins)
    插件是扩展 Ansible 核心功能的代码片段,例如连接插件用于控制如何连接到被管理节点,过滤插件用于操纵数据,回调插件用于控制控制台显示的内容。

  4. 集合 (Collections)
    集合是一种用于分发 Ansible 内容的格式,可以包含剧本、角色、模块和插件


“运维的未来是,让研发人员能够借助工具、自动化和流程,并且让他们能够在运维干预极少的情况下部署和运营服务,从而实现自助服务。每个角色都应该努力使工作实现自动化。”——《运维的未来》

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

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

相关文章

云存储技术:HBase HDFS 无感知迁移方案

在大数据生态系统中,HBase 和 HDFS 是两个关键组件。HBase 是一个分布式列式数据库,常用于实时读写大规模数据;HDFS 是一个高可靠的分布式文件系统,用于存储海量数据。 1、背景 随着业务的发展和技术的进步,可能需要对…

HDMI vs DP:LED显示屏背后的高清传输大揭秘

在如今数字化高速发展的时代,LED显示屏以其高亮度、高清晰度、长寿命等优点,广泛应用于广告、会议、娱乐等多个领域。然而,要让这些绚丽多彩的画面完美呈现,离不开背后默默工作的接口技术。今天,我们就来揭开LED显示屏…

前端react集成OIDC

文章目录 OpenID Connect (OIDC)3种 授权模式 【服务端】express 集成OIDC【前端】react 集成OIDCoidc-client-js库 原生集成react-oidc-context 库非组件获取user信息 OAuth 2.0 协议主要用于资源授权。 OpenID Connect (OIDC) https://openid.net/specs/openid-connect-core…

【安当产品应用案例100集】007-工业控制系统防勒索解决方案-安当RDM防勒索

《工业控制系统网络安全防护指南》是由工业和信息化部于2024年1月19日发布,旨在指导企业提升工业控制系统网络安全防护水平,确保新型工业化发展的安全根基。该指南适用于使用和运营工业控制系统的企业,包括但不限于可编程逻辑控制器&#xff…

【生成式人工智能-十-文字、图片、声音生成策略】

人工智能生成文字、图片、声音的方法 生成的本质生成的策略文字AR (Autoregressive Generation)图像和视频 NAR(Non-Autoregressive Generation)解决NAR生成品质低的问题 AR NAR 生成的本质 文字、图像、声音的生成的本质,就是给模型一个输入,模型把基…

大模型应用中的幻觉问题是什么?

大模型应用中的幻觉问题是什么? 在现代自然语言处理领域,大语言模型(如GPT系列)以其惊人的生成能力和语言理解能力被广泛应用。然而,随着这些模型的广泛使用,幻觉问题逐渐显现出其对实际应用的潜在影响。本…

怎样快速查询数家公司是否存在关联关系?

▶关联关系的查询是企业稳健运营和长期发展的关键环节 企业在关键时期需要查询数家公司是否存在关联关系,以确保合规性和透明度。这通常发生在年度审计、税务申报、并购活动、上市准备、风险评估和法律诉讼时。监管合规性检查、内部控制加强、市场策略制定、资金管…

加速区域市场扩张,ATFX任命Amer Zino为中东和北非业务发展总监

全球领先的差价合约经纪商ATFX再度向世界展示了其吸纳行业顶尖复合型人才的决心和能力。日前,ATFX旗下机构业务ATFX Connect宣布一项重磅人事任命,行业杰出领袖Amer Zino加入公司,出任中东和北非业务发展总监一职,并将常驻工作地阿…

【ARM】ULINK Pro如何和SWD接口进行连接调试

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决ULINK Pro和JTAR接口进行连接问题。 2、 问题场景 因为ULINK Pro本身自带的接口是Cortex-M ETM Interface 20-pin Connector。所以无法和JTAR接口直接进行连接。 图2-1 3、软硬件环境 1)、软件版…

综合交易系统---强大的问财自定义实盘交易系统上线

这几天知识星球的朋友的需要,我重新写了问财自定义实盘交易系统,同时把数据库上线了,网页 https://gitee.com/li-xingguo11111/xg_data 调用网页的源代码数据服务器地址 http://124.220.32.224:8888/ 问财实盘设置,打开总结交易系…

【从零开始一步步学习VSOA开发】VSOA数据报

VSOA数据报 概念 Datagram 是 VSOA 的一种数据传输类型,通常这种类型用于传输一些不需要确认的数据,例如传输视频流数据或构建 VPN 网络。 Datagram 可以简单快速的在网络中传输数据。它即不需要建立连接,也不需要维护连接,因此…

GESP 一级 比赛

出错了 - 洛谷https://www.luogu.com.cn/contest/190441#problems 邀请码:zura 有讲解哦!

SCAU学习笔记 - 高级语言程序设计课后习题

写在前面 趁着暑假赶紧把C语言的习题也补了 也欢迎看到这篇博客的小灯们来到华南农业大学喵 专栏里还有后续其他部分课程的学习笔记 如何提交自己的代码 首先给各位说一下这门课程的要求,首先是我们学校的校内OJ,我们计算机类专业的学生用的是前面这个…

突破 ES 引擎局限性在用户体验场景中的优化实践

回顾:ES 慢上游响应问题优化在用户体验场景中的实践-CSDN博客 上文介绍了用户体验管理平台(简称 VoC)在针对 ES 慢上游响应场景下的优化实践,本文继续介绍针对第二个痛点问题——ES 引擎局限性的性能优化实践进行介绍。 下文以搜…

MaxKB:基于 LLM大语言模型的知识库问答系统实操

1.MaxKB介绍 MaxKB 是一款基于 LLM(Large Language Model)大语言模型的知识库问答系统。MaxKB 的产品命名内涵为 “Max Knowledge Base”,为用户提供强大的学习能力和问答响应速度,致力于成为企业的最强大脑。与同类基于 LLM 的知…

数值分析【4】

目录 ​编辑第六章 数值积分微分 龙贝格 高斯求积 查表? 插值求导 两点 ​编辑 三点​编辑 第七章 ode 龙哥库塔 线性多步法 第八章 eig 幂法:v-》Av-》AAv-》……​编辑 反幂法 每次成得是A逆,这样得到摸最小的特征值​编辑 Q…

【IEEE独立出版】第四届计算机科学与区块链国际学术会议 (CCSB 2024)

第四届计算机科学与区块链国际学术会议 (CCSB 2024) 2024 4th International Conference on Computer Science and Blockchain 2024年9月6-8日 中国-深圳 老牌会议 | 涵盖计算机学科 | 往届均完成见刊、稳定检索 | 论文录用速度快 | 有ISBN号! *关于IEEE出版社 电气电子工…

使用ant design的modal时,发现自定义组件的样式(组件高度)被改变了!

一 问题描述 在项目中,自定义了一个组件,分别在界面和 antd的modal中都有使用到。但是突然发现,界面中的组件样式跟modal中的组件样式高度不一样。modal中的组件整体要比页面中的组件要高一点。 项目中的自定义组件比较复杂,因此&…

C#使用Puppeteer

Puppeteer Puppeteer是一个Node.js库,它提供了高级API来通过DevTools协议(Chrome DevTools Protocol https://devtools.chrome.com)控制Chrome或Chromium。 Puppeteer默认情况下无头运行(headless)。 可以配置为运行完整的Chrome或Chromium,运行效果如…

【中项】系统集成项目管理工程师-第11章 项目范围管理-11.2收集需求

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…