AnsiblePlaybookで変数を使用する方法

提供:Dev Guides
移動先:案内検索

Ansibleは、変数の使用をサポートして、タスクとプレイブックの実行をより適切にカスタマイズします。 このように、異なるターゲットと環境で同じプレイブックを使用することが可能です。

変数は、プレイブックファイル自体や、プレイブックにインポートされた外部変数ファイルなど、さまざまなソースから取得できます。 特別な優先ルールは、同じ名前の変数を定義する複数の変数ソースを操作する場合に適用されます。

変数が実際にどのように機能するかを確認するために、usernamehome_dirの2つの変数の値を出力する新しいテストプレイブックを作成します。 ansible-practiceディレクトリにplaybook-02.ymlという名前の新しいファイルを作成します。

nano ~/ansible-practice/playbook-02.yml

次に、新しいプレイブックファイルに次の行を追加します。

〜/ ansible-practice / playbook-02.yml

---
- hosts: all
  vars:
    - username: sammy
    - home: /home/sammy   
  tasks:
    - name: print variables
      debug:
        msg: "Username: {{ username }}, Home dir: {{ home }}"

編集が完了したら、ファイルを保存して閉じます。

プレイブックのvarsセクションは、そのプレイのスコープに挿入される変数のリストを定義します。 すべてのタスク、およびプレイブックに含まれている可能性のあるファイルまたはテンプレートは、これらの変数にアクセスできます。

インベントリファイルからサーバーでこのプレイブックを試すには、最初の例を実行したときに以前に使用したのと同じ接続引数を使用してansible-playbookを実行します。 ここでも、inventoryという名前のインベントリファイルとsammyユーザーを使用してリモートサーバーに接続します。

ansible-playbook -i inventory playbook-02.yml -u sammy

次のような出力が表示されます。

Output
PLAY [all] ***********************************************************************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************************************************
ok: [203.0.113.10]

TASK [print variables] ***********************************************************************************************************************************************************************
ok: [203.0.113.10] => {
    "msg": "Username: sammy, Home dir: /home/sammy"
}

PLAY RECAP ***********************************************************************************************************************************************************************************
203.0.113.10              : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

print variablesタスクは、debugモジュールを使用して、プレイブックのvarsセクションで定義した2つの変数の値を出力します。