TPA and Ansible Tower/Ansible Automation Platform#
TPAは、RedHat Ansible Automation
PlatformAAPを介した展開をサポートしています。このサポートは、以下で詳細に説明するように、AAPでdeploy
およびupgrade
ステップを実行できるようにすることで機能します。デプロイまたはアップグレードを実行する前に、tpaパッケージがインストールされている別のスタンドアロンマシンで構成configure
コマンドとプロビジョニングprovision
コマンドを実行する必要があります。このスタンドアロンマシンで適切なオプションを使用してconfigure
およびprovision
を実行すると、結果のクラスターディレクトリをAAPにインポートできます。サポートはベアメタルプラットフォームに制限されています。
AAPの初期セットアップ#
TPAがAAPを使用してクラスターを展開する前に、この初期設定を実行する必要があります。
TPA実行環境イメージの追加 管理者#
バージョン2.4以降、AAPはコンテナイメージを使用してAnsibleプレイブックを実行します。これらのコンテナは実行環境EEと呼ばれ、プレイブックが正常に実行するために必要な依存関係をバンドルしています。その結果、これは、必要なTPA依存関係をすべて解決して使用するには、TPAを含むEEが必要で、展開とアップグレードの実行時にAAPが使用できることを意味します。
EDBの顧客は、EDBサポートに連絡して、EEに関するサポートを求めることができます。
AAP管理者として、TPA対応EEイメージを指す使用可能なEEリストにエントリを作成します。
EDB_SUBSCRIPTION_TOKEN資格情報タイプを作成します admin#
AAP管理者として、カスタム資格情報タイプEDB_SUBSCRIPTION_TOKEN
を作成して、EDBサブスクリプションアクセストークンを保持します。
AAP UIの[ Credentials Type ]ページに移動します。
Name フィールドを
EDB_SUBSCRIPTION_TOKENに設定します。次を 入力構成 フィールドに貼り付けます。
fields:
- id: tpa_edb_sub_token
type: string
label: EDB_SUBSCRIPTION_TOKEN
secret: true
required:
- tpa_edb_sub_token
次を Injector Configuration フィールドに貼り付けます。
env:
EDB_SUBSCRIPTION_TOKEN: {{ tpa_edb_sub_token }}
変更を保存します。
新しく追加されたタイプ
EDB_SUBSCRIPTION_TOKENを使用して資格情報を作成します。
クラスターのセットアップ#
tpaexecパッケージがインストールされているワークステーションで初期手順を実行します。
TPAワークステーションで#
構成#
次のオプションを含むtpaexec configure
コマンドを実行します。--platform bare 、--use-ansible-tower
、--tower-git-repository
[tpa]$ tpaexec configure <clustername> \
--platform bare \
--use-ansible-tower https://aac.example.com \
--tower-git-repository ssh://git@git.example.com/example \
--hostnames-from <hostnamefile> \
--architecture PGD-Always-ON \
--pgd-proxy-routing local \
--postgresql 16
--use-ansible-tower
は、その時点で使用されない場合でも、パラメーターとしてAAPアドレスを想定しています。
--tower-git-repository
は、クラスターデータをAAPにインポートするために使用されます。
TPAは、ブランチ名としてcluster_name
を使用して独自のブランチを作成します。これにより、すべてのクラスターに同じリポジトリを使用できます。
クラスター構成 で説明しているように、 tpaexec configure
の他のすべてのオプションは引き続き有効です。
config.ymlの変更#
config.yml には、トップレベル辞書のansible_tower
が含まれ、これにより、 tpaexec provision
はクラスターをAAP対応クラスターとして扱います。
config.yml を編集して、ノードごとにansible_host
および{private,public}_ip が定義され、ansible_host
がAAPが解決可能な値に設定されていることを確認します。必要に応じて、さらに変更または追加を加えます。詳細は、
クラスター構成 を参照してください。
インベントリーおよびその他の関連ファイルを生成するには、tpaexec provision
を実行します。
AAP UIの場合#
プロジェクト#
gitリポジトリをソースとして使用して、AAPにプロジェクトを追加します。 TPA EEイメージを使用するようにプロジェクトのデフォルトEEを設定します。
単一のプロジェクトで複数のインベントリを使用しようとする場合、 Allow Branch Override が必要です。
インベントリ#
空のインベントリを追加します。プロジェクトを外部ソースとして使用し、インベントリファイルとしてinventory/00-cluster_name
を使用してデータを入力します。
AAPでTPAの制御の外部にある追加変数を設定しない場合、 リモートインベントリソースからローカル変数を上書きする を使用することをお勧めします。
資格情報#
vault 資格情報を作成します。
TPAワークステーションでtpaexec show-vault <cluster_dir>
を使用して、ボールトのパスワードを取得できます。
展開中にSSHを介してインベントリノードに接続するには、マシンの資格情報がAAPで利用できることを確認してください。
テンプレートの作成#
テンプレートを作成するには
プロジェクトとインベントリを使用するテンプレートを作成します。
次の必要な資格情報を含めます。
Vault credential
EDB_SUBSCRIPTION_TOKENcredentialマシン資格情報
2つの追加変数を設定します。
tpa_dir: /opt/EDB/TPA
cluster_dir: /runner/project
プレイブックとして
deploy.ymlを選択します。クラスターを展開するには、新しいテンプレートに基づいてジョブを実行します。
複数のインベントリに1つのプロジェクトを使用する#
TPAは、関連するgitリポジトリのクラスターごとに異なるブランチ名を使用します。このアプローチでは、複数のクラスターで単一のプロジェクトを使用できます。
Allowブランチオーバーライドオプションを設定します#
AAPプロジェクトで、 Allow Branch override オプションを有効にします。
複数のインベントリを定義する#
TPAは、gitリポジトリ内のクラスターごとに異なるブランチ名を使用します。インベントリごとにブランチをオーバーライドすることにより、同じプロジェクトをソースと使用して複数のインベントリを生成できます。
インベントリーごとに資格情報を定義する#
ボールトのパスワードは、TPAクラスターごとに異なるため、インベントリーごとにそれに応じて設定されていることを確認します。
AAPでTPAを更新#
AAPでTPAの更新には、いくつかの追加手順が含まれます。
TPAワークステーションパッケージの更新#
OSに応じて、OSパッケージと同様にTPAワークステーションパッケージを更新します。 TPA installation を参照してください。
同じバージョンタグでEEイメージを使用する#
AAPのEEイメージを変更して、使用されるワークステーションパッケージバージョンと同じバージョンタグを使用します。
クラスターディレクトリでtpaexec relinkを実行します#
tpaexec relink <cluster_dir> --force
を実行して、AAPを使用するクラスターが最新の状態であることを確認します。これを行う必要がある場合の例は、TPAインストールを新しいバージョンにアップグレードした後です。
relink
コマンドによってコミットされた変更は必ずプッシュしてください。
$ git status
On branch cluster_name
Your branch is ahead of tower/cluster_name by 1 commit.
(use "git push" to publish your local commits)
...
$ git push tower
プロジェクトとインベントリの同期#
ジョブの起動時にリビジョンの更新 と 起動時の更新 を使用するように設定されていない場合は、それぞれAAP UIと関連インベントリでプロジェクトを同期します。
TPAのEEをビルドする#
前提条件#
独自のEEイメージをビルドするには、 ansible-builder
を使用することをお勧めします。
必要なものは次のとおりです。
dockerまたはpodmanansible-builderおよびansible-navigatorpythonツールキットTPA repo からタグ
vA.B.CでチェックアウトしたTPAソースコードvA.B.Cは、使用するTPAバージョンです。
環境ファイル#
ansible-builder
は、環境ファイルを使用して、作業用EEイメージを生成します。
次に、このようなTPAの環境ファイルのテンプレート例を示します。
execution-environment.yml
version: 3
images:
base_image:
name: registry.redhat.io/ansible-automation-platform-24/ee-minimal-rhel9:latest
dependencies:
python: << TPA_REPO_CLONE_FOLDER >>/requirements-aap.txt
galaxy: << TPA_REPO_CLONE_FOLDER >>/collections/requirements.yml
options:
package_manager_path: /usr/bin/microdnf
additional_build_steps:
append_final:
- RUN mkdir -p /opt/EDB/TPA
- COPY << TPA_REPO_CLONE_FOLDER >> /opt/EDB/TPA
- ENV PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}/opt/EDB/TPA/lib"
異なるベースイメージには、より多くのadditional_build_steps
が必要になる場合があります。 ansible-builder を参照してください
高度な使用のために。
EE buildコマンド#
次のコマンドは、EEイメージをビルドします。
ansible-builder build \
--file=execution-environment.yml \
--container-runtime=<docker/podman> \
--tag=<your-registry>/<your-namespace>/tpa-ee:vA.B.C \
--verbosity 2