wait_for
wait_for – Waits for a condition before continuing — Ansible Documentation
タスクを適度に待たせて適切なタイミングで実行させるモジュール。
サービスを起動させた直後にポートチェックや、ログファイルの出力がきちんとされているか遅延実行させたい場合に使える。
- name: Waits for port 8000 of any IP to close active connections, don't start checking for 10 seconds wait_for: host: 0.0.0.0 port: 8000 delay: 10 state: drained
assert
assert – Asserts given expressions are true — Ansible Documentation
プログラミングでもおなじみのassert。インフラのテストでも使えます。
特定のサービスが上がっているかどうか。コマンドがインストールされているかどうか、パッケージのバージョンが正しく入っているかどうか。といったテストを記述することができます。
- shell: rpm -qi nginx register: p_installed - shell: chkconfig --list | grep nginx register: p_enabled - shell: ps aux | grep nginx register: p_running - shell: netstat -ant | grep 80 register: p_listen - stat: path=/etc/nginx/nginx.conf register: p_exist - shell: cat /etc/nginx/nginx.conf register: p_cat - assert: that: - p_installed is defined - p_enabled is defined - p_running is defined - p_listen is defined - p_exist.stat.exists - "'worker_connections 1024;' in p_cat.stdout"
fail
fail – Fail with custom message — Ansible Documentation
- name: OS check fail: msg="not supported." when: - ansible_distribution == "CentOS" - ansible_distribution_major_version|int < 7