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

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

展開ステージの最後に、Postgresは、 repmgr、
Barman、pgbouncerなどの他のコンポーネントとともに実行されます選択したアーキテクチャに応じて。

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

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

:ref:`Configuring EDB Repos 2.0 repositories <Configuring EDB Repos 2.0 repositories>` を使用している場合は、展開の前に
``export EDB_SUBSCRIPTION_TOKEN=xxx``
を行う必要があります。これを忘れた場合、エラーメッセージがすぐに思い出させます。

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

.. 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``
にも記録されます。

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

applyコマンドは自分自身にオプションを取りません。クラスター名の後に指定したオプションは、変更せずに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:`Instance configuration <Instance configuration>` の概要を示します。
Ansibleプレイブックに精通している場合は、
tpaexecがクラスターのインスタンスにさまざまなロールを適用するのを理解することができます。

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