一、Ansible 概述

1、Ansible 简介

Ansible 是一个 开源的自动化平台,使用 Playbook(YAML 语言编写)描述并执行 IT 架构和任务。它的核心是 automation engine,用于解析和运行 Playbook,实现配置管理、应用部署、运维编排等功能。

二、红帽 Ansible Automation Platform 2 组件

PqsYCQBb-1.png

1、Ansible Core

  • 提供运行 Ansible Playbook 的基本功能。定义了 Ansible Playbook 的 YAML 格式自动化语言。它提供了自动化代码所需的关键功能,如循环、条件和其他 Ansible 命令。还提供了驱动自动化所需的框架和基本命令行工具。
  • 红帽 Ansible 自动化平台 2.2 在 ansible-core RPM 软件包及其 eeminimal-rhel8 和 ee-supported-rhel8 自动化执行环境(容器 images)中提供 Ansible Core 2.13。
  • ansible-navigator images 命令可以下载执行环境 images(ee-minimalrhel8 和 ee-supported-rhel8)。

2、Ansible Content Collections:

  • Ansible 过去提供了大量模块作为核心软件包的一部分,随着 Ansible 快速发展,包含的模块数量呈指数级增⻓,导致了支持方面的一些挑战。
  • 于是大多数模块被重新整理为单独的 Ansible Content Collections。
  • Ansible Core 本身则仅限于由 Ansible Content Collections 提供的一小组模块。
  • 订阅红帽 Ansible 自动化平台 2 后,可获得红帽提供的 120 多个认证 Content Collections 的访问权限。还可通过 Ansible Galaxy 获得很多受社区支持的 Collection。

3、Automation Content Navigator:

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

4、Automation Execution Environments:

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

PqsYCQBb-2.png

5、Automation Controller:

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

6、Automation Hub:

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

三、部署控制节点

  • 要运行 Ansible Playbook,需在控制节点安装 ansible-navigator,然后下载执行环境。受管主机无需安装 ansible-navigator。
  • 控制节点需要预安装 Python3.8 或以上版本。
  • 需要有效的红帽 Ansible 自动化平台订阅,才能在控制节点上安装 navigator
  • 在控制节点上安装自动化内容导航器(Automation Content Navigator)

dnf install ansible-navigator :安装自动化内容导航器 ansible-navigator

PqsYCQBb-3.png

接下来安装与自动化内容导航器搭配使用的执行环境的容器镜像

podman login registry.redhat.io :登录到红帽官方的容器镜像仓库

PqsYCQBb-4.png

podman pull registry.redhat.io/ansible-automation-platform-22/ee-supported-rhel8:latest :下载准备与自动化内容导航器搭配使用的执行环境的容器镜像。(自动化内容导航器可能还会在运行 ansible-navigator 命令时,自动下载默认的执行环境)

PqsYCQBb-5.png

如控制节点不使用基于容器环境来运行 ansible-playbook 命令(我们使用 ansible-navigator 操作容器,容器里面自带 ansible-core),也可以安装 ansible-core 软件包,但 ansible-navigator 通常可提供更好的开发体验。

dnf install ansible-core :安装 ansible-core

PqsYCQBb-6.png