演習02
Playbookを書いてみよう
演習01では、アドホックコマンドを使って情報の取得や状態を変化させました。 ここでは、Playbookを作ってAnsibleを実行する方法について説明します。
Step 1. Playbookを作成する
ここでは gather_vm_guests.yml というファイルを作成してみましょう。
vi gather_vm_guests.yml作成したファイルの先頭に以下の例を追加します。
---
- name: GATHER INFOMATION FROM VM GUEST
hosts: all
gather_facts: no---は、このファイルがYAMLファイルであるということを示しています。hosts: allは、このPlaybookをallグループに対して実行します。グループ名は次のステップで作成するインベントリフィアルに定義します。gather_facts: noは、Playbookを実行するホストのOS関連情報を取得しないようにしています。
Step 2. Inventoryを作成する
Inventoryファイルを作成することで、Playbookを実行する複数ホストの指定やグルーピングをすることができます。
ここでは inventory というファイルを作成してみましょう。
作成したファイルの先頭に以下の例を追加します。
[all]は、Playbookを実行するホストをまとめるグループ名です。localhostは、Playbookを実行するホストです。何もパラメーターを追加しない場合は、名前解決してアクセスします。ansible_connectionは、ホストへの接続タイプを指定します。ここではlocalを指定してPlaybookを実行したホスト自身で指定されたPlaybookを実行するようにしています。
Ansibleのインベントリに指定できるリモートホストパラメーターの詳細は以下を参照ください。
Step 3. Playbookを実行する
それでは、演習01でやったVM Guestの情報をPlaybookを使って取得してみます。
以下のように tasks 以下をPlaybookへ追記します。
作成したPlaybookを実行してみましょう。
問題なく実行できれば、以下のように表示されます。
アドホックのように取得した値が表示されない?と思った方もいるかもしれません。
Playbookで取得した値を表示するには、Playbookに表示する処理を書く必要があります。
結果を表示するには以下のように register と debug モジュールを追加します。
registerは、モジュールの結果を指定した変数に格納します。ここではgather_vm_guest_facts_result変数に結果を格納しています。debugモジュールを使って、格納した変数の中身を表示します。
もう一度Playbookを実行します。
問題なく実行できれば、結果は以下のように表示されます。
取得した情報を指定して表示することも可能です。 例えば、VMの名前だけを表示してみます。 以下のようにdebug部分を修正します。
もう一度Playbookを実行します。
問題なく実行できれば、結果は以下のように表示されます。
配列に入っている情報を取得する場合は以下のように要素番号を指定します。
もう一度Playbookを実行します。
問題なく実行できれば、結果は以下のように表示されます。
完了
お疲れ様でした。 演習02は終了です。
Last updated
Was this helpful?