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

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

このメカニズムを使用して、クラスターに適用されるプロセスを自動化できます。これらのコマンドは、ビルトインのクラスター管理コマンドと同様に、クラスターディレクトリに対して呼び出すことができます。このようなプロセスを定義および実行する統一の方法があると、誤解やオペレーターエラー、または過去に正しかったが、それ以降現実から乖離したプロセスドキュメントによって引き起こされるエラーの可能性が減少します。

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

これにより、アドホックシェルスクリプトは可能ですが、通常はそうではない方法で、復元力の高いべき等コマンドを書くのがはるかに簡単になります。

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

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

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

例
--

次に、クラスター内のすべてのインスタンスで単一のコマンドを実行するコマンドの例を示します。ユースケースに応じて、さまざまなホストをターゲットとするコマンドたとえば、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
