firewalld.yml 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. ---
  2. - name: Install firewalld packages
  3. action: "{{ ansible_pkg_mgr }} name=firewalld state=present"
  4. when: not openshift.common.is_containerized | bool
  5. register: install_result
  6. - name: Check if iptables-services is installed
  7. command: rpm -q iptables-services
  8. register: pkg_check
  9. failed_when: pkg_check.rc > 1
  10. changed_when: no
  11. - name: Ensure iptables services are not enabled
  12. service:
  13. name: "{{ item }}"
  14. state: stopped
  15. enabled: no
  16. with_items:
  17. - iptables
  18. - ip6tables
  19. when: pkg_check.rc == 0
  20. - name: Reload systemd units
  21. command: systemctl daemon-reload
  22. when: install_result | changed
  23. - name: Start and enable firewalld service
  24. service:
  25. name: firewalld
  26. state: started
  27. enabled: yes
  28. register: result
  29. - name: need to pause here, otherwise the firewalld service starting can sometimes cause ssh to fail
  30. pause: seconds=10
  31. when: result | changed
  32. - name: Mask iptables services
  33. command: systemctl mask "{{ item }}"
  34. register: result
  35. changed_when: "'iptables' in result.stdout"
  36. with_items:
  37. - iptables
  38. - ip6tables
  39. when: pkg_check.rc == 0
  40. ignore_errors: yes
  41. # TODO: Ansible 1.9 will eliminate the need for separate firewalld tasks for
  42. # enabling rules and making them permanent with the immediate flag
  43. - name: Add firewalld allow rules
  44. firewalld:
  45. port: "{{ item.port }}"
  46. permanent: false
  47. state: enabled
  48. with_items: os_firewall_allow
  49. when: os_firewall_allow is defined
  50. - name: Persist firewalld allow rules
  51. firewalld:
  52. port: "{{ item.port }}"
  53. permanent: true
  54. state: enabled
  55. with_items: os_firewall_allow
  56. when: os_firewall_allow is defined
  57. - name: Remove firewalld allow rules
  58. firewalld:
  59. port: "{{ item.port }}"
  60. permanent: false
  61. state: disabled
  62. with_items: os_firewall_deny
  63. when: os_firewall_deny is defined
  64. - name: Persist removal of firewalld allow rules
  65. firewalld:
  66. port: "{{ item.port }}"
  67. permanent: true
  68. state: disabled
  69. with_items: os_firewall_deny
  70. when: os_firewall_deny is defined