2. Docker Compose

2.1. はじめに

本書では、Exastro IT Automation のデプロイ先となるコンテナプラットフォームのシステム要件について説明します。

2.2. システム要件

2.2.1. サーバー要件

動作確認が取れているコンテナ環境の最小要求リソースとバージョンは下記のとおりです。
表 2.2 ハードウェア要件(最小構成)

リソース種別

要求リソース

CPU

2 Cores (3.0 GHz, x86_64)

Memory

4GB

Storage (Container image size)

35GB ※

表 2.3 ハードウェア要件(推奨構成)

リソース種別

要求リソース

CPU

4 Cores (3.0 GHz, x86_64)

Memory

16GB

Storage (Container image size)

120GB

※ パーテーション単位でディスク容量が必要です。
▼RHEL
・コンテナイメージ
/home/ユーザ名/.local 25GB
・Exastroのデータ
/home/ユーザ名/exastro-docker-compose 10GB(目安です。使い方によって大きく異なります。)

▼RHEL 以外
・コンテナイメージ
/var/lib/ 25GB
・Exastroのデータ
/home/ユーザ名/exastro-docker-compose 10GB(目安です。使い方によって大きく異なります。)

警告

最小構成における要求リソースはGitLabコンテナとOASEコンテナのデプロイでnを選択した場合の値です。GitLabコンテナとOASEコンテナのデプロイをする場合は、その分のリソースが別途必要となります。
データベースおよびファイルの永続化のために、別途ストレージ領域を用意する必要があります。
Storage サイズは、ユーザーの利用状況によるためあくまで目安となります。必要に応じて容量を確保してください。

2.2.2. 通信要件

表 2.4 通信要件

用途

説明

通信元

通信先

デフォルト

Exastro サービス用

Exastro サービスとの接続に利用

クライアント

Exastro システム

30080/tcp

Exastro システム管理用

Exastro システム管理機能に利用

クライアント

Exastro システム

30081/tcp

GitLab サービス用(オプション)

AAP連携時の GitLab サービス接続に利用

Ansible Automation Platform

Exastro システム

40080/tcp

GitLab サービス用(オプション)

GitLab サービス監視用

Exastro システム

Exastro システム

40080/tcp

資材取得

GitHub、コンテナイメージ、導入パッケージなど

Exastro システム

インターネット

443/tcp

2.2.3. RPMパッケージ一覧

以下は、Exastro IT Automation を Docker もしくは Podman 環境にインストールする際に必要なRPMパッケージ一覧となります。
オフライン環境でのインストールの場合、各パッケージのインストールが必要となります。
詳細については Exastro on Docker Compose - Offline を参照してください。
表 2.5 Red Hat Enterprise Linux

パッケージ名

説明

RHEL8

RHEL9

RHEL10

podman

podmanエンジン

〇

〇

〇

podman-docker

Docker互換コマンドパッケージ

〇

〇

〇

git

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

〇

〇

〇

container-selinux

コンテナ実行時のSELinuxポリシー

〇

〇

〇

createrepo

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

〇

〇

〇

表 2.6 AlmaLinux

パッケージ名

説明

AlmaLinux 8

AlmaLinux 9

podman

podmanエンジン

〇

〇

podman-docker

Docker互換コマンドパッケージ

〇

〇

git

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

〇

〇

container-selinux

コンテナ実行時のSELinuxポリシー

〇

〇

createrepo

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

〇

〇

2.3. 動作確認済み実績

以下は、動作確認済みのオペレーティングシステムとコンテナプラットフォームのバージョンとなります。
表 2.8 動作確認実績

OSバージョン

podmanバージョン

Docker Composeバージョン

Dockerバージョン

Red Hat Enterprise Linux release 9.5 (Plow)

podman version 5.8.2

Docker Compose version v2.20.3

ー

Red Hat Enterprise Linux release 9.4 (Plow)

podman version 4.9.4-rhel

Docker Compose version v2.20.3

ー

AlmaLinux release 9.6 (Sage Margay)

ー

ー

Docker version 29.5.3, build d1c06ef

注釈

RHEL OSの場合、インストーラスクリプトでPodmanをインストールする際に、最新バージョンの(システムに予めインストールされている場合はそのバージョンの)Podmanが使用されます。
動作確認済みのバージョンよりも新しいバージョンが使用されることで、Podmanのバージョン差異に起因する事象が発生することがあります。

Tip

RHEL 8.2 もしくは podman 4.x の初期バージョンでは、ルートレスモードで正常に名前解決ができない事象が報告されています。RHEL 8.3 以降のバージョンをご使用ください。

Tip

podman 5.x 以降では、ルートレスモードにおいて、デフォルトのネットワークドライバーが変更されたことにより、ルートレスコンテナからホスト自身に対して通信が出来ない事象が報告されています。
Ansible作業実行でホスト自身に通信する必要がある場合等、必要に応じて下記対応をご検討ください。
▼ネットワーク設定の変更
~/.config/containers/containers.conf の default_rootless_network_cmd の値を下記に変更
# default_rootless_network_cmdを"pasta"から"slirp4netns"に変更する
default_rootless_network_cmd = "slirp4netns"
▼podmanのダウングレード
sudo dnf downgrade podman-4.9.4-rhel