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

Ansible(2)——部署 Ansible

目录

一、获取 Ansible 软件:

1、从上游社区获得:

(1)Ansible Core :

(2)社区 Ansible :

2、RHEL 中的 Ansible Core(有限支持):

3、红帽 Ansible 自动化平台(全方位支持):

二、红帽 Ansible 自动化平台:

1、Ansible Core :

2、Ansible 内容集合( Ansible Content Collections ):

3、自动化内容导航器(ansible-navigator ):

4、自动化执行环境( Automation Execution Environments ):

5、自动化控制器( Automation Controller ):

6、自动化中心( Ansible Content Collections ):

三、准备控制节点:

四、准备受管主机:

1、受管主机要求:

2、Microsoft Windows 受管主机:

3、受管网络设备:


一、获取 Ansible 软件:

        获取 Ansible 软件的方式有很多,每种方式都可以获得特定级别的支持。

1、从上游社区获得:

        上游 Ansible 社区通过两种方式分发 Ansible 。

(1)Ansible Core :

        Ansible Core 是一个简约组件,由 Ansible 核心 runtime 和一组常用 Ansible 模块组成。运行时采取特殊结构,让控制节点充当 Ansible 代码的执行环境。

(2)社区 Ansible :

        社区 Ansible 是 Ansible Core 的发行版,外加开源社区选择的其他 Ansible 内容集合,增加了额外的 Ansible 模块和角色

注:以上两个社区版本都以 Python pip 软件包的形式提供,无法享受红帽的支持。

2、RHEL 中的 Ansible Core(有限支持):

        红帽以 RPM 软件包( ansible-core )的形式提供红帽 Ansible Core,来自 RHEL 9 的 AppStream 仓库。这种方式可以获得支持,仅限于红帽产品附带或生成的 Ansible Playbook 、角色或模块,如 rhel-system-roles 软件包、Red Hat Insight playbook 和 OpenSCAP 合规性 Ansible Playbook 。

注:上述外的其他用例(如, Ansible Core 2.13 附带的其他 Ansible 模块和插件等) 不在支持的范围内。

3、红帽 Ansible 自动化平台(全方位支持):

        红帽 Ansible 自动化平台提供全面受支持的 Ansible 版本,提供受支持的 Ansible Core 以及其他经过认证并且受支持的内容、工具、组件和云服务。

注:(1)Ansible 在各个版本中的语言和基本概念都是一样的;

       (2)我学习使用的是红帽 Ansible 自动化平台 2.2 ,其中包含 Ansible 2.13 ,基于 Ansible 6 社区发行版;

       (3)本篇文章将重点介绍红帽 Ansible 自动化平台提供的工具。

二、红帽 Ansible 自动化平台:

1、Ansible Core :

        Ansible Core 提供运行 Ansible Playbook 的基本功能。定义了 Ansible Playbook 的 YAML 格式自动化语言。提供了自动化代码所需的关键功能,如循环、条件和其他 Ansible 命令。提供了驱动自动化所需的框架和基本命令行工具。

注:红帽 Ansible 自动化平台 2.2 在 ansible-core RPM 软件包以及 ee-minimal-rhel8 和 ee-supported-rhel8 自动化执行环境(容器 images)中提供 Ansible Core 2.13 。

        ansible-navigator images 命令可以下载执行环境镜像( ee-minimal-rhel8 和 ee-supported-rhel8 )。

2、Ansible 内容集合( Ansible Content Collections )

        在过去,Ansible 提供了大量的模块作为核心软件包的一部分,但随着 Ansible 的快速发展,包含的模块数量呈指数级增⻓,导致了支持方面的一些挑战,用户会希望使用比 Ansible 特定版本中附带模块版本更早或更高的模块。

        因此,上游开发人员决定将大多数模块重新整理为单独的 Ansible 内容集合( Ansible Content Collections ),这些资源集合由相关的模块、 角色和插件构成,由同一组开发人员提供支持。

注:Ansible Core 本身仅限于由 ansible.builtin Ansible Content Collections 提供的一小组模块,该集合始终是 Ansible Core 的一部分。

3、自动化内容导航器(ansible-navigator )

        红帽 Ansible 自动化平台提供了新的顶级工具 ansible-navigator 用来开发和测试 Ansible Playbook ,该工具取代并扩展多个命令,包括 ansible-playbook 、ansible-inventory 、ansible-config 等命令。通过在容器中运行 playbook ,可以更轻松地为自动化代码提供完整的工作环境,以部署到生产环境中。

4、自动化执行环境( Automation Execution Environments ):

        自动化执行环境是一种容器镜像,其包含 Ansible Core 、Ansible Content Collections ,以及运行 playbook 所需的任何 Python 库、可执行文件或其他依赖项。使用 ansible-navigator 运行 playbook 时,用户可以选择用于运行该 playbook 的自动化执行环境。

5、自动化控制器( Automation Controller )

        自动化控制器以前称为红帽 Ansible Tower,是红帽 Ansible 自动化平台的一个组件,提供中央控制点来运行企业自动化代码。此外还提供 Web UI 和 REST API 用于配置、运行和评估自动化作业。

6、自动化中心( Ansible Content Collections ):

        用户可通过 console.redhat.com 上的公共服务访问红帽 Ansible Content Collections ,将这些 Content Collections 下载下来与 ansible-galaxy (适用于 ansible-navigator )和自动化控制器结合使用。

三、准备控制节点:

        要运行 Ansible Playbook ,需要在控制节点安装 ansible-navigator ,然后下载执行环境。受管主机无需安装 ansible-navigator ,控制节点需要预安装 Python 3.8 及以上版本。用户需要有效的红帽 Ansible 自动化平台订阅,才能在控制节点上安装 navigator  。     

        安装过程如下:

1、在控制节点上安装自动化内容导航器( Automation Content Navigator )。

2、验证系统上是否已安装自动化内容导航器。

3、登录容器镜像仓库

4、下载准备与自动化内容导航器搭配使用的执行环境容器镜像

注:自动化内容导航器可能还会在运行 ansible-navigator 命令时,自动下载默认的执行环境。

5、显示本地可用的容器镜像列表,验证镜像是否已下载。

注:若控制节点不使用基于容器环境来运行 ansible-playbook 命令,也可以安装 ansible-core 软件包(但 ansible-navigator 命令通常可以提供更好的开发体验)。

四、准备受管主机:

        Ansible 的一大优点是受管主机不需要安装特殊代理,Ansible 控制节点使用标准的网络协议连接受管主机,从而保证系统处于指定状态。

1、受管主机要求:

        受管主机需要满足一些要求,这些要求取决于控制节点连接它们的方式以及它们要运行的模块。

(1)Linux 和 UNIX 受管主机需要安装有 Python 3.8 或更高版本。对于 RHEL8,可安装 platform-python 软件包,还可以启用和安装 python38 应用流。

(2)如果受控节点开启SELinux ,则需安装 python3-libselinux 软件包才可以使用与复制、文件以及模板功能相关的模块。

注:若安装了其他 Python 组件,可以使用 ansible.builtin.dnf 或者 ansible.builtin.package 模块来确定安装了 python3-libselinux 软件包。

(3)Ansible 需要支持使用 SSH 来连接计算机。如果以普通用户的身份连接,还需要支持使用 sudo 等机制获取超级用户访问权限。

2、Microsoft Windows 受管主机:

        Ansible 包含大量管理 Windows 的模块,大而部分模块均需要 Microsoft Windows 受控主机安装 PowerShell 3.0 及以上版与 .NET Framework 4.0 及以上版本。

3、受管网络设备:

        Ansible 中含有大量模块用以配置网络设备,用户可以使用 Ansible 自动化来配置受管网络设备(例如,路由器、交换机等)。用以配置网络设备的模块包括对 Cisco IOS 、 IOS XR 和 NX-OS 的支持, Juniper Junos 、Arista EOS 以及 VyOS-based 等。

        由于大部分网络设备无法运行 Python ,因此模块将在控制节点上运行。控制节点和受控网络设备通过 SSH 上的 CLI 、 XML  或 HTTP(S) 上的 API 方式通信。

相关文章:

  • 爬虫:基本流程和robots协议
  • 从零构建大语言模型全栈开发指南:第四部分:工程实践与部署-4.1.1模型量化(INT8/FP16)与剪枝策略
  • 【软考备考】管道一过滤器(Pipe-Filter)的架构风格
  • USB有驱IC卡读卡器
  • Spring中都用到了哪些设计模式
  • 美团小程序 mtgsig1.2 拼好饭案例 分析 mtgsig
  • 六级词汇量积累day13
  • dayjs dayjs时间格式化工具(时间计算、时间格式化)
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例14,TableView16_14 拖拽自动保存示例
  • python leetcode简单练习(1)
  • 【FreeRTOS】任务(TASK)——任务的创建(源码解读)
  • Qt中绘制不规则控件
  • ​Linux 中 nmap 命令详解:从基础到实战的全面指南
  • dfs记忆化搜索刷题 + 总结
  • 如何判断列表a中元素是否在列表b中
  • [leetcode]2685. 统计完全连通分量的数量
  • C++ 结构体、结构体指针与结构体指针数组详解
  • RabbitMQ 的三种集群模式
  • ETL数据集成:企业数字化转型的核心驱动力与实施策略
  • C++ Primer Plus 编程练习题 第五章 循环和关系表达式
  • 公司简介英文怎么说/seo外链在线提交工具
  • 六安论坛六安杂谈/抚顺优化seo
  • 网站开发 搜索/企业信息查询
  • 海外网购/seo属于技术还是营销
  • 做网站做地区好还是全国的好/班级优化大师
  • 怎么在网站做系统/百度竞价最低点击一次多少钱