TPA custom commands
===================

TPAクラスター内のインスタンスで、環境に固有のタスクを実行するカスタムコマンドを定義できます。

このメカニズムを使用して、クラスターに適用されるプロセスを自動化できます。これらのコマンドは、組み込みのクラスター管理コマンドと同様に、クラスターディレクトリに対して呼び出すことができます。このようなプロセスを定義して実行する統一された方法を持つことは、誤解やオペレーターのエラー、または過去に正しかったがそれ以来現実から逸脱しているプロセス文書によって引き起こされるエラーの可能性を減らします。

Ansible
Playbookを作成するということは、任意に複雑なタスクを実装できることを意味します。カスタムコマンド規則に従うことは、
config.ymlとTPAが実行するクラスター検出タスクに基づいて設定されるさまざまな事実を利用でき、接続、認証、その他の基本機能などの詳細について考える必要がないことを意味します。

これにより、通常はそうでないアドホックシェルスクリプト（そうかもしれませんが）の方法で、弾力性のあるべき等コマンドを書くことがはるかに簡単になります。

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

-  クラスターディレクトリ内に\ ``commands/mycmd.yml`` を作成します

-  ``tpaexec mycmd /path/to/cluster`` を実行します

例
--

クラスター内のすべてのインスタンスで1つのコマンドを実行するコマンドの例を次に示します。ユースケースに応じて、さまざまなホストをターゲットとするコマンド（たとえば、
Postgresインスタンスでのみ実行する\ ``hosts: role_postgres``
）を作成したり、追加のタスクを実行して条件を評価したりして、何をすべきかを正確に決定できます。

.. code:: yaml

   - --
   #  Always start with this


   -  import_playbook: "{{ tpa_dir }}/architectures/lib/init.yml"
     tags: always


   -  name: Perform custom command tasks
     hosts: all
     tasks:
     - name: Display last five lines of syslog
       command: tail -5 /var/log/syslog
       become_user: root
       become: yes
