TPA and Ansible Tower/Ansible Automation Controller
===================================================

TPAは、レッドハットアンシブルオートメーションコントローラAAPをサポートしています。
AAPでは、展開/アップグレードの手順のみが実行されます。
tpaパッケージがインストールされているスタンドアロンマシンで構成とプロビジョニングを実行します。結果のクラスターディレクトリは、AAPにインポートできます。サポートはベアメタルプラットフォームに制限されています。

Automation Platformの初期セットアップ
-------------------------------------

TPAでは、AAPを使用してクラスターを展開する前に、次の手順を1回実行する必要があります。

TPA実行環境イメージの追加 管理者
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

バージョン2.4以降、AAPはコンテナイメージを使用してAnsible
Playbookを実行します。これらのコンテナは実行環境EEと呼ばれ、プレイブックが正常に実行するために必要な依存関係をバンドルしています。

!!!注
EDB顧客は、実行環境EEに関するヘルプについてEDBサポートに連絡できます。

AAP管理者として、使用可能なEEリストにEEイメージを指すエントリを作成します。

EDB_SUBSCRIPTION_TOKEN資格情報タイプを作成します admin
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

AAP管理者は、以下の説明のようにカスタム資格情報タイプ\ ``EDB_SUBSCRIPTION_TOKEN``
を作成して、EDBサブスクリプションアクセストークンを保持します。

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

「NAME」フィールドを「EDB_SUBSCRIPTION_TOKEN」に設定します。次を「INPUT
CONFIGURATION」フィールドに貼り付けます。

.. code:: yaml

   fields:

   - id: tpa_edb_sub_token
     type: string
     label: EDB_SUBSCRIPTION_TOKEN
     secret: true
   required:

   - tpa_edb_sub_token

次を「INJECTOR CONFIGURATION」フィールドに貼り付けます。

.. code:: yaml

   env:
     EDB_SUBSCRIPTION_TOKEN: {{ tpa_edb_sub_token }}

変更を保存します。

新しく追加されたタイプ\ ``EDB_SUBSCRIPTION_TOKEN``
を使用して資格情報を作成します。

クラスターのセットアップ
------------------------

初期手順は、
tpaexecパッケージがインストールされているワークステーションで実行されます。

TPAワークステーションで
^^^^^^^^^^^^^^^^^^^^^^^

構成
^^^^

次のオプションを含めて\ ``tpaexec configure`` コマンドを実行します
``--platform bare`` 、\ ``--use-ansible-tower``
、\ ``--tower-git-repository``

.. code:: bash

   [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``
を使用して独自のブランチを作成します。これにより、すべてのクラスターに同じリポジトリを使用できます。
:ref:`クラスター構成 <クラスター構成>` で説明しているように、 ``tpaexec configure``
の他のすべてのオプションは引き続き有効です。

config.ymlの変更
^^^^^^^^^^^^^^^^

config.ymlには、トップレベル辞書 ``ansible_tower`` が含まれており、
``tpaexec provision`` はクラスターをAAP対応クラスターとして扱います。

config.ymlを編集し、各ノードに\ ``ansible_host``
および\ ``{private,public}_ip``
が定義されていること、およびansible_hostがAAPによって解決可能な値に設定されていることを確認します。必要に応じて変更または追加を行います。
\ :ref:`クラスター構成 <クラスター構成>` を参照してください。

``tpaexec provision``
を実行して、インベントリおよびその他の関連ファイルを生成します。

AAP UIの場合
^^^^^^^^^^^^

プロジェクト
^^^^^^^^^^^^

gitリポジトリをソースとして使用して、AAPにプロジェクトを追加します。
tpa提供のイメージを使用するようにデフォルトのEEを設定します。

.. ::
   !!!プロジェクトオプションに関する注意 ジョブを実行する前に変更が正しく同期されることを確認するために、 `Update Revision on Launch` の使用を強くお勧めします。

``Allow Branch Override``
は、単一のプロジェクトで複数のインベントリを使用しようとする場合に必要です。

インベントリ
^^^^^^^^^^^^

空のインベントリを追加し、プロジェクトを外部ソースとして使用して、インベントリファイルとして\ ``inventory/00-cluster_name``
を使用してデータを入力します。

.. ::
   !!!インベントリーオプションに関する注意 変更が正しく同期されるように、 `Overwrite local groups and hosts from remote inventory source` の使用を強くお勧めします。

``Overwrite local variables from remote inventory source``
は、AAPでTPAの制御の外部に追加変数を設定しない場合にもお勧めします。

資格情報
^^^^^^^^

``vault``
資格情報を作成します。ボールトのパスワードは、tpaワークステーションで\ ``tpaexec show-vault <cluster_dir>``
を介して取得できます。

展開中にsshを介してインベントリノードに接続するために、マシン資格情報がAAPで利用できることを確認します。

テンプレートの作成
^^^^^^^^^^^^^^^^^^

プロジェクトとインベントリを使用するテンプレートを作成します。必要な資格情報を含めます。

-  Vault資格情報

-  EDB_SUBSCRIPTION_TOKEN資格情報

-  マシン資格情報

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

::

     tpa_dir: /opt/EDB/TPA
     cluster_dir: /runner/project

プレイブックとして\ ``deploy.yml`` を選択します。

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

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

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

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

AAPプロジェクトで\ ``Allow branch override option`` を有効にします。

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

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

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

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

AAPでTPAを更新
--------------

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

tpaワークステーションパッケージの更新
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

OSに応じて、OSパッケージと同様にTPAワークステーションパッケージを更新します。
:ref:`パッケージのインストール <パッケージのインストール>` を参照してください。

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

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

クラスターディレクトリでtpaexec relinkを実行します
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``tpaexec relink <cluster_dir>``
を実行して、AAPを使用するクラスターが最新の状態であることを確認します。
``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でプロジェクトと関連インベントリがそれぞれ\ ``Update revision on job launch``
および\ ``Update on launch``
を使用するように設定されていない場合、同期します。 !!!
