みなさんこんにちは。ヒロウミです。
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": []
}
}
実行対象のマシンに合わせてファイル名を変更したい場合などに便利ですね