(ansible)playbookで変数を使う

投稿者: | 2016年10月29日

みなさんこんにちは。ヒロウミです。

playbook内でコマンドの実行結果を変数として登録してみたのでメモっておきます。

- hosts: all
  tasks:
  - name: OS名を取得
    shell: uname
    register: osname #shellモジュールの実行結果を変数として登録

  - debug: var=osname #変数をansible-playbookコマンド実行時に表示させる

  - name: OS名のディレクトリを作成
    file: path=/tmp/{{ osname.stdout }} state=directory owner=vagrant group=vagrant mode=0755

変数の内容はこんな感じ

ok: [target01] => {
    "osname": {
        "changed": true,
        "cmd": "uname",
        "delta": "0:00:00.003267",
        "end": "2016-10-29 14:57:32.083970",
        "rc": 0,
        "start": "2016-10-29 14:57:32.080703",
        "stderr": "",
        "stdout": "Linux",
        "stdout_lines": [
            "Linux"
        ],
        "warnings": []
    }
}

実行対象のマシンに合わせてファイル名を変更したい場合などに便利ですね