かべぎわブログ

技術的なことについてかけたらいいな…

Ansibleのshellではif文とかもつかえる

概要

しらなかったのでメモ。
つかいどころがあるのかどうかはわからぬ。

playbook

たとえばこんなかんじのplaybookがあったとする。

実行してみる

こんなかんじでifが実行されていることがわかる。

$ ansible-playbook ./wawawa.yml --extra-vars="hensuu=wawawa" -v
Using /etc/ansible/ansible.cfg as config file

PLAY [target] *******************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************
ok: [ec2-18-179-38-201.ap-northeast-1.compute.amazonaws.com]

TASK [shell] ********************************************************************************************************
changed: [ec2-18-179-38-201.ap-northeast-1.compute.amazonaws.com] => {"changed": true, "cmd": "if [ \"wawawa\" = \"wawawa\" ]; then\n echo \"いいね\"\n else\n echo \"よくないね\"\n fi", "delta": "0:00:00.005598", "end": "2019-01-29 05:29:56.713565", "rc": 0, "start": "2019-01-29 05:29:56.707967", "stderr": "", "stderr_lines": [], "stdout": "いいね", "stdout_lines": ["いいね"]}

PLAY RECAP **********************************************************************************************************
ec2-18-179-38-201.ap-northeast-1.compute.amazonaws.com : ok=2    changed=1    unreachable=0    failed=0   
$ ansible-playbook ./wawawa.yml --extra-vars="hensuu=sasasa" -v
Using /etc/ansible/ansible.cfg as config file

PLAY [target] *******************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************
ok: [ec2-18-179-38-201.ap-northeast-1.compute.amazonaws.com]

TASK [shell] ********************************************************************************************************
changed: [ec2-18-179-38-201.ap-northeast-1.compute.amazonaws.com] => {"changed": true, "cmd": "if [ \"sasasa\" = \"wawawa\" ]; then\n echo \"いいね\"\n else\n echo \"よくないね\"\n fi", "delta": "0:00:00.008033", "end": "2019-01-29 05:30:11.312959", "rc": 0, "start": "2019-01-29 05:30:11.304926", "stderr": "", "stderr_lines": [], "stdout": "よくないね", "stdout_lines": ["よくないね"]}

PLAY RECAP **********************************************************************************************************
ec2-18-179-38-201.ap-northeast-1.compute.amazonaws.com : ok=2    changed=1    unreachable=0    failed=0   

おわりに

つかいみちがあるのかないかでいったらわからないっす。

Ansible実践ガイド 第2版 (impress top gear)

Ansible実践ガイド 第2版 (impress top gear)