Ansibleでのタスクのデリゲーション方法


  1. デリゲーション先のホストを指定する: Ansibleでは、デリゲーション先のホストを指定するために「delegate_to」ディレクティブを使用します。例えば、以下のようなタスクがあるとします。

    - name: データベースのバックアップを取得する
     command: /usr/bin/backup.sh
     delegate_to: db_server

    上記の例では、「delegate_to」ディレクティブを使用して、"db_server"というホストに対してタスクをデリゲートしています。

  2. デリゲーション先のタスク結果を受け取る: デリゲーション先のタスクが完了した後、その結果を受け取ることもできます。これには「register」ディレクティブを使用します。以下に例を示します。

    - name: データベースのバックアップを取得する
     command: /usr/bin/backup.sh
     delegate_to: db_server
     register: backup_result
    - name: デリゲート先のタスク結果を表示する
     debug:
       var: backup_result

    上記の例では、デリゲーション先のタスクの結果を「backup_result」という変数に保存し、後続のタスクで表示しています。

  3. デリゲーション先のタスクでローカル変数を使用する: デリゲーション先のタスクでローカル変数を使用する場合、Ansibleでは「local_action」ディレクティブを使用します。以下に例を示します。

    - name: デリゲーション先のタスクでローカル変数を使用する
     local_action: command /usr/bin/local_task.sh --var {{ local_var }}
     delegate_to: db_server

    上記の例では、「local_action」ディレクティブを使用して、デリゲーション先のタスクで「local_var」というローカル変数を使用しています。

これらはAnsibleでタスクのデリゲーションを行う基本的な方法です。これにより、効率的なタスクの実行と結果の受け取りが可能になります。詳細な情報については、Ansibleの公式ドキュメントを参照してください。