4. Ansible Execution Agent

4.1. はじめに

Exastro IT Automation(以下、ITAとも記載する)のAnsible連携機能(以下、Ansible driver)を運用するためのシステム構成とシステム要件について説明します。
本書では、実行エンジンに Ansible Execution Agent を使用した際のシステム構成とシステム要件について解説します。
Ansible Execution Agentは、Exastro IT Automationで実行される 「Ansible-Legacy」、「Ansible-Pioneer」、「Ansible-LegacyRole」 といった作業を、PULL型で実行するためのエージェント機能です。

4.2. システム構成

Ansible driver は、Exastro IT Automation をインストールすることにより、標準機能としてご利用できます。
Exastro IT Automation のインストール方法に関しては、 インストール/アップグレード を参照してください。

クローズド環境下での Ansible 実行を行いたい場合は、Ansible Execution Agent による構成により可能となります。

以下に Ansible Execution Agent における構成パターンと構成イメージを記載します。

4.2.1. 構成パターン

表 4.1 システム構成パターン
構成
説明
Ansibleスケールアウト可否
Ansible Execution Agent
Exastro IT Automation システムと Ansible Execution Agent を別環境(クローズド環境)に構成可能
Ansible BuilderとAnsible Runnerを使った動的なAnsible作業実行環境の生成 ​(任意の環境・モジュールを利用可能)
○ (Kubernetes環境に限る)

4.2.2. システム構成イメージ

Ansible Execution Agent システム構成イメージ

4.3. システム要件

Ansible driver は Exastro IT Automation システムのシステム要件に準拠するため、Kubernetes クラスターのシステム要件 を参照してください。
ここでは Ansible Execution Agent に関するシステム要件を記載します。
Ansible Execution Agent を利用するには以下の要件を満たしていることが前提となります。

4.3.1. ハードウェア要件

  • 動作確認済み構成

表 4.2 動作確認済み最小構成

リソース種別

要求リソース

CPU

2 Cores (3.0 GHz, x86_64)

Memory

6GB

Storage

40GB

表 4.3 動作確認済み推奨構成

リソース種別

要求リソース

CPU

4 Cores (3.0 GHz, x86_64)

Memory

8GB

Storage

80GB

警告

※ディスク容量は、エージェントサービスの件数や、作業実行結果の削除設定、ビルドするimageサイズに依存するため、
必要に応じて、サイジング、及びメンテナンス(Docker Image や Build Cache等について)を実行してください。

4.3.2. OS要件

動作確認済みのOSは以下です。
表 4.4 動作確認済みOS

OS種別

バージョン

RHEL9

Red Hat Enterprise Linux release 9.7 (Plow)

RHEL10

Red Hat Enterprise Linux release 10.1 (Coughlan)

Almalinux9

AlmaLinux release 9.7 (Moss Jungle Cat)

なお、動作確認済みのOSにおいても以下の設定が必要となります。
  • SELinuxがPermissiveに変更されていること。
$ sudo vi /etc/selinux/config
SELINUX=Permissive
$ getenforce
Permissive

4.3.3. ソフトウェア要件

以下の条件が満たされている必要があります。

  • 動作確認済みバージョンの Python がインストールされていること

  • インストールを実行するユーザで python3 と pip3 コマンドが実行できること

注釈

Almalinuxでは python3 と pip3 コマンドがPython3.11に紐づいている必要があります。
Ansible Execution Agentの動作確認の際、以下のバージョンのAnsible-builder/Ansible-runnerを使用しております。
表 4.5 動作確認済みバージョン情報(RHEL9/Almalinux9)
ソフトウェア
バージョン(コミュニティ版)
バージョン(RHELサポート付きライセンス版)
OS種別
RHEL9/Almalinux9
RHEL9
Python
3.11
3.11
ansible-builder
3.1.1
3.1.1-1.2.el9ap
ansible-runner
2.4.3
2.4.2-3.el9ap
表 4.6 動作確認済みバージョン情報(RHEL10)
ソフトウェア
バージョン(コミュニティ版)
バージョン(RHELサポート付きライセンス版)
OS種別
RHEL10
RHEL10
Python
3.12
3.12
ansible-builder
3.1.1
3.1.1-2.el10ap
ansible-runner
2.4.3
2.4.2-2.el10ap

インストールパッケージ一覧

以下は、Exastro IT Automation に Ansible Execution Agent を導入するために必要なパッケージ一覧となります。
オフライン環境でのインストール場合、各パッケージのインストールが必要となります。
詳細については Ansible Execution Agent - Offline を参照してください。
  • 各種パッケージ一覧

表 4.7 Red Hat Enterprize Linux

パッケージ名

説明

RHEL 9

RHEL 10

yum-utils

dnf download / yumdownloaderコマンド実行パッケージ

〇

〇

createrepo

ローカルリポジトリ(オフライン作業時に必要)

〇

〇

gcc

C コンパイラ

〇

〇

gcc-c++

C++ コンパイラ

〇

〇

make

ビルド制御ツール

〇

〇

kernel-headers

カーネルヘッダーファイル

〇

〇

glibc

glibcライブラリ本体

〇

〇

glibc-common

glibcの共通ファイル

〇

〇

glibc-headers

glibcヘッダー

〇

〇

glibc-devel

glibc標準ヘッダー

〇

〇

langpacks-en

英語ロケール

〇

〇

python3.11

Python 3.11 実行環境

〇

python3.11-pip

Pythonパッケージ管理

〇

pthon3.11-devel

Python開発ヘッダー(ビルド用)

〇

python3.12

Python 3.12 実行環境

〇

python3.12-pip

Pythonパッケージ管理

〇

python3.12-devel

Python開発ヘッダー(ビルド用)

〇

keyrings.alt

root用Pythonパッケージ

〇

〇

pip

pipアップグレード

〇

〇

requests

Exastro ITA との REST API 通信

〇

〇

poetry (version1.6.0)

Python依存関係管理

〇

〇

cryptography

暗号化ライブラリ

〇

〇

git

ソースコード管理、バージョン管理

〇

〇

dokcer-compose

コンテナオーケストレーション(v2.20.3推奨)

〇

〇

ansible-builder

コンテナイメージビルドツール

〇

〇

ansible-runner

ansible実行環境

〇

〇

表 4.8 AlmaLinux

パッケージ名

説明

AlmaLinux 9

yum-utils

yumdownloaderコマンド実行パッケージ

〇

createrepo

ローカルリポジトリ(オフライン作業時に必要)

〇

gcc

C コンパイラ

〇

gcc-c++

C++ コンパイラ

〇

make

ビルド制御ツール

〇

kernel-headers

カーネルヘッダーファイル

〇

glibc

glibcライブラリ本体

〇

glibc-common

glibcの共通ファイル

〇

glibc-headers

glibcヘッダー

〇

glibc-devel

glibc標準ヘッダー

〇

langpacks-en

英語ロケール

〇

python3.11

Python 3.11 実行環境

〇

python3.11-pip

Pythonパッケージ管理

〇

python3.11-devel

Python開発ヘッダー(ビルド用)

〇

python3.12

Python 3.12 実行環境

python3.12-pip

Pythonパッケージ管理

python3.12-devel

Python開発ヘッダー(ビルド用)

keyrings.alt

root用Pythonパッケージ

〇

pip

pipアップグレード

〇

requests

Exastro ITA との REST API 通信

〇

poetry (version1.6.0)

Python依存関係管理

〇

cryptography

暗号化ライブラリ

〇

git

ソースコード管理、バージョン管理

〇

docker-compose

コンテナオーケストレーション(v2.20.3推奨)

〇

ansible-builder

コンテナイメージビルドツール

〇

ansible-runner

ansible実行環境

〇

※ansible-builder/ansible-runnerのバージョンについては、 動作確認済みバージョン情報(RHEL9/RHEL10/Almalinux9) を参照してください。

RHELサポート付きライセンス利用の場合

Ansible-builder および Ansible-runner の有償版をご利用いただく際は、インストーラを実行する前に、必ずサブスクリプションの登録とリポジトリの有効化を完了させてください。
  • Red Hat コンテナーレジストリーの認証

    podman login registry.redhat.io
    
  • 利用するリポジトリ

    RHEL9の場合:

    rhel-9-for-x86_64-baseos-rpms
    rhel-9-for-x86_64-appstream-rpms
    ansible-automation-platform-2.5-for-rhel-9-x86_64-rpms
    

    RHEL10の場合:

    rhel-10-for-x86_64-baseos-rpms
    rhel-10-for-x86_64-appstream-rpms
    ansible-automation-platform-2.6-for-rhel-10-x86_64-rpms
    
  • 有効化されているリポジトリの確認、リポジトリの有効化

    RHEL9の場合:

    sudo subscription-manager repos --list-enabled
    sudo subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms
    sudo subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms
    sudo subscription-manager repos --enable=ansible-automation-platform-2.5-for-rhel-9-x86_64-rpms
    

    RHEL10の場合:

    sudo subscription-manager repos --list-enabled
    sudo subscription-manager repos --enable=rhel-10-for-x86_64-baseos-rpms
    sudo subscription-manager repos --enable=rhel-10-for-x86_64-appstream-rpms
    sudo subscription-manager repos --enable=ansible-automation-platform-2.6-for-rhel-10-x86_64-rpms
    

4.3.4. 通信要件

エージェントサーバから、外部NWへの通信が可能である必要があります。
  • 接続先のITA

  • 各種インストール、及びモジュール、BaseImage取得先等(インターネットへの接続を含む)

  • 作業対象サーバ

Ansible Execution Agent 通信要件

4.3.5. その他の要件

Ansible builderで使用する動作確認済みのベースイメージ

  • 動作確認済みビルドのベースイメージ

表 4.9 動作確認済みビルドのベースイメージ

ベースイメージ種別

イメージ取得先

備考

ubi9

registry.access.redhat.com/ubi9/ubi-init:latest

rhel9

registry.redhat.io/ansible-automation-platform-24/ee-supported-rhel9:latest

サポート付きライセンス利用の場合