register と failed_when
苦労していた、Ansible によるMySQL のユーザー情報CRUD 周りの冪等性ですが、とりあえずは、どうにか解決できそうです。
shell の実行結果に応じてregister の値を格納してやり、その結果をwhen で確認して、処理を振り分ける形。
- name: Check if root pass is blank shell: mysql -uroot -e "exit" register: blank_root_password failed_when: false changed_when: false - debug: msg="{{ blank_root_password }}" - name: Change root password mysql_user: host: localhost login_user: root login_password: '' name: root password: hoge when: blank_root_password.stderr == ""
正直、ちょっと苦しいというか、シンプルとは言い難い書き方なので、もっと勉強が必要そうですけれどね。
まあ、ここで長々と引っ掛かっていると、それはそれで時間のロスなので。
まずは歩を進めます。
長かった。orz