tpaexec deploy
==============

デプロイとは、クラスターのサーバーにPostgresおよびその他のソフトウェアをインストールして構成するプロセスです。これには、レプリケーション、バックアップなどの設定が含まれます。

展開段階の最後に、 Postgresは repmgr 、 Barman、 pgbouncer
などの他のコンポーネントとともに起動して実行されます（選択したアーキテクチャによって異なります）。

前提条件
--------

``tpaexec deploy`` を実行する前に、 :ref:`tpaexec configure <Cluster configuration>` 
を実行してクラスター構成を生成し、 :ref:`tpaexec provision <tpaexec provision>` 
でサーバーをプロビジョニングしておく必要があります。

デプロイする前に、\ ``export TPA_2Q_SUBSCRIPTION_TOKEN=xxx``
して、サブスクリプションが必要な2ndQuadrantリポジトリを有効にする必要があります。
 :ref:`DebianまたはUbuntuにリポジトリを追加し、TPAをインストールする <DebianまたはUbuntuにリポジトリを追加し、TPAをインストールする>` 自分自身に使用したサブスクリプショントークンを使用できます。これを忘れた場合、エラーメッセージがすぐにあなたに思い出させます。

クイックスタート
----------------

.. code:: bash

   [tpa]$ tpaexec deploy ~/clusters/speedy -v
   Using /opt/EDB/TPA/ansible/ansible.cfg as config file

   PLAY [Basic initialisation and fact discovery]  ****  ****  ****  ****  ****  ****  ****  ****  ****  *** 
   ...

   PLAY [Set up TPA cluster nodes]  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  **** **
   ...

   PLAY RECAP  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  ****  *** 
   zealot                     : ok=281  changed=116  unreachable=0    failed=0   
   keeper                     : ok=284  changed=96   unreachable=0    failed=0   
   quaver                     : ok=260  changed=89   unreachable=0    failed=0   
   quavery                    : ok=260  changed=88   unreachable=0    failed=0   
   quirk                      : ok=262  changed=100  unreachable=0    failed=0   

   real    7m1.907s
   user    3m2.492s
   sys     1m5.318s

このコマンドは大量の出力を生成し、時間がかかる場合があります（主にtpaexecを実行しているホストとクラスター内のホストとの間のレイテンシー、およびインスタンスがインストールする必要があるパッケージをダウンロードするのにかかる時間によって異なります）
。展開中に少なくとも1つの\ ``-v``
を使用することをお勧めします。出力は、クラスターディレクトリの\ ``ansible.log``
にも記録されます。

もちろん、ホスト、タスク、および変更されたタスクの正確な数は異なる場合があります。

deployコマンドは自分自身にオプションを取りません。クラスター名の後に指定したオプションは、変更されずにAnsibleに渡されます（例、
``-v`` ）。

Ansibleに精通している人は、時折赤い「failed」タスク出力がスクロールすることに気になるかもしれません。その後すぐにプロセスが停止しない場合、エラーは重要ではなく、コードは自動的に回復します。

展開が完了したら、 :ref:`tpaexec test <tpaexec test>`  を実行してインストールを確認できます。

選択的展開
----------

``deploy_hosts``
をインスタンス名のコンマ区切りリストに設定することにより、デプロイメントをホストのサブセットに制限できます。

.. code:: bash

   [tpa]$ tpaexec deploy ~/clusters/speedy -v -e deploy_hosts=keeper,quaver

これにより、指定されたインスタンスでデプロイメントが実行されますが、最初に他のホストでいくつかのタスクを実行して、クラスターの状態に関する情報を収集します。

（ ``deploy_hosts``
の設定は、TPAでサポートされていないAnsibleの\ ``--limit``
オプションを使用する代わりに推奨される方法です。）

deploy.yml
----------

展開プロセスはアーキテクチャ固有です。これが、さまざまな :ref:`configuration settings that affect the deployment <Instance configuration>` 
の概要です。 Ansible Playbookに精通している場合は、 tpaexec
がクラスターのインスタンスにさまざまなロールを適用する手順をたどることができます。

config.ymlとは異なり、
deploy.ymlは編集するように設計されていません（通常はアーキテクチャディレクトリへのリンクです）。デプロイメントプロセスを拡張して独自のAnsibleタスクを実行する場合でも、
 :ref:`creating hooks <TPA hooks>` 
までに行う必要があります。これにより、特定のアーキテクチャ内での将来の実装の変更から保護されます。
