AnsiblePlaybookで変数を使用する方法
Ansibleは、変数の使用をサポートして、タスクとプレイブックの実行をより適切にカスタマイズします。 このように、異なるターゲットと環境で同じプレイブックを使用することが可能です。
変数は、プレイブックファイル自体や、プレイブックにインポートされた外部変数ファイルなど、さまざまなソースから取得できます。 特別な優先ルールは、同じ名前の変数を定義する複数の変数ソースを操作する場合に適用されます。
変数が実際にどのように機能するかを確認するために、2つの変数の値を出力する新しいテストプレイブックを作成します。 username
と home_dir
. と呼ばれる新しいファイルを作成します playbook-02.yml
あなたの中で ansible-practice
ディレクトリ:
- nano ~/ansible-practice/playbook-02.yml
次に、新しいプレイブックファイルに次の行を追加します。
---
- hosts: all
vars:
- username: sammy
- home: /home/sammy
tasks:
- name: print variables
debug:
msg: "Username: {{ username }}, Home dir: {{ home }}"
編集が完了したら、ファイルを保存して閉じます。
The 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
The print variables
タスクはを使用します debug
モジュールで定義した2つの変数の値を出力します vars
プレイブックのセクション。