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

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

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

  1. 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 }}"

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

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

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

  1. 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 プレイブックのセクション。