第3章 Ansible Playbook の実用的な例
Ansible は、クラウドベースの REST API から Linux および Windows システム、ネットワークハードウェアなど、さまざまなデバイス区分と通信できます。
以下は、2 種類のサーバーを自動更新する 2 つの Ansible モジュールのサンプルです。
3.1. Playbook 実行 リンクのコピーリンクがクリップボードにコピーされました!
Playbook は、上から下へ順番に実行されます。各プレイ内では、タスクは上から下に順番に実行されます。複数の 'プレイ' を含む Playbook は、Web サーバー上で 1 つのプレイを実行し、次にデータベースサーバー上で別のプレイを実行し、次にネットワークインフラストラクチャー上で 3 番目のプレイを実行するなど、複数マシンのデプロイメントを調整できます。
少なくとも、各プレイは 2 つのことを定義します。
- ターゲットに設定する管理対象ノード (パターンの使用)
- 実行すべき 1 つ以上のタスク
複数のコレクションに同じ名前のモジュール (例: user) が含まれていることがあるため、正しいモジュールが選択されるように、Playbook では完全修飾コレクション名を使用してください。
詳細は、Playbook でのコレクションの使用 を参照してください。
この例では、第 1 のプレイは Web サーバーを対象とし、第 2 のプレイはデータベースサーバーを対象としています。
Playbook には 2 つのプレイが含まれます。
- 最初に、Web サーバーソフトウェアが最新かどうかを確認し、必要に応じて更新を実行します。
- 次に、データベースサーバーソフトウェアが最新の状態かどうかを確認し、必要に応じて更新を実行します。
Playbook には、ホスト行とタスク以外のものを含めることができます。
たとえば、このサンプル Playbook では、プレイごとに remote_user を設定します。SSH 接続用のユーザーアカウントです。他の Playbook キーワードを Playbook、Play、またはタスクレベルで追加して、Ansible の動作を操作できます。Playbook キーワードは、接続プラグイン、権限昇格を使用するかどうか、エラーの処理方法などを制御できます。
さまざまな環境をサポートするために、Ansible では、Ansible 設定またはインベントリーでこれらのパラメーターの多くをコマンドラインフラグとして設定できます。これらのデータソースの優先ルールを学習すると、Ansible エコシステムを拡張するときに役立ちます。