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サブスクリプションアクセストークンを保持します。

  1. AAP UIの[ Credentials Type ]ページに移動します。

  2. Name フィールドをEDB_SUBSCRIPTION_TOKEN に設定します。

  3. 次を 入力構成 フィールドに貼り付けます。

fields:
- id: tpa_edb_sub_token
  type: string
  label: EDB_SUBSCRIPTION_TOKEN
  secret: true
required:
- tpa_edb_sub_token
  1. 次を Injector Configuration フィールドに貼り付けます。

env:
  EDB_SUBSCRIPTION_TOKEN: {{ tpa_edb_sub_token }}
  1. 変更を保存します。

  2. 新しく追加されたタイプ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で利用できることを確認してください。

テンプレートの作成#

テンプレートを作成するには

  1. プロジェクトとインベントリを使用するテンプレートを作成します。

  2. 次の必要な資格情報を含めます。

    • Vault credential

    • EDB_SUBSCRIPTION_TOKEN credential

    • マシン資格情報

  3. 2つの追加変数を設定します。

tpa_dir: /opt/EDB/TPA
cluster_dir: /runner/project
  1. プレイブックとしてdeploy.yml を選択します。

  2. クラスターを展開するには、新しいテンプレートに基づいてジョブを実行します。

複数のインベントリに1つのプロジェクトを使用する#

TPAは、関連するgitリポジトリのクラスターごとに異なるブランチ名を使用します。このアプローチでは、複数のクラスターで単一のプロジェクトを使用できます。

Allowブランチオーバーライドオプションを設定します#

AAPプロジェクトで、 Allow Branch override オプションを有効にします。

複数のインベントリを定義する#

TPAは、gitリポジトリ内のクラスターごとに異なるブランチ名を使用します。インベントリごとにブランチをオーバーライドすることにより、同じプロジェクトをソースと使用して複数のインベントリを生成できます。

インベントリーごとに資格情報を定義する#

ボールトのパスワードは、TPAクラスターごとに異なるため、インベントリーごとにそれに応じて設定されていることを確認します。

AAPでTPAを更新#

AAPでTPAの更新には、いくつかの追加手順が含まれます。

TPAワークステーションパッケージの更新#

OSに応じて、OSパッケージと同様にTPAワークステーションパッケージを更新します。 TPA installation を参照してください。

同じバージョンタグでEEイメージを使用する#

AAPのEEイメージを変更して、使用されるワークステーションパッケージバージョンと同じバージョンタグを使用します。

プロジェクトとインベントリの同期#

ジョブの起動時にリビジョンの更新 と 起動時の更新 を使用するように設定されていない場合は、それぞれAAP UIと関連インベントリでプロジェクトを同期します。

TPAのEEをビルドする#

前提条件#

独自のEEイメージをビルドするには、 ansible-builder を使用することをお勧めします。

必要なものは次のとおりです。

  1. docker またはpodman

  2. ansible-builder およびansible-navigator pythonツールキット

  3. 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