iptables.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. ---
  2. - name: Check if firewalld is installed
  3. command: rpm -q firewalld
  4. register: pkg_check
  5. failed_when: pkg_check.rc > 1
  6. changed_when: no
  7. - name: Ensure firewalld service is not enabled
  8. service:
  9. name: firewalld
  10. state: stopped
  11. enabled: no
  12. when: pkg_check.rc == 0
  13. # TODO: submit PR upstream to add mask/unmask to service module
  14. - name: Mask firewalld service
  15. command: systemctl mask firewalld
  16. register: result
  17. changed_when: "'firewalld' in result.stdout"
  18. when: pkg_check.rc == 0
  19. ignore_errors: yes
  20. - name: Install iptables packages
  21. action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
  22. with_items:
  23. - iptables
  24. - iptables-services
  25. register: install_result
  26. when: not openshift.common.is_atomic | bool
  27. - name: Reload systemd units
  28. command: systemctl daemon-reload
  29. when: install_result | changed
  30. - name: Determine if iptables service masked
  31. command: >
  32. systemctl is-enabled {{ item }}
  33. with_items:
  34. - iptables
  35. - ip6tables
  36. register: os_firewall_iptables_masked_output
  37. changed_when: false
  38. failed_when: false
  39. - name: Unmask iptables service
  40. command: >
  41. systemctl unmask {{ item }}
  42. with_items:
  43. - iptables
  44. - ip6tables
  45. when: "'masked' in os_firewall_iptables_masked_output.results | map(attribute='stdout')"
  46. - name: Start and enable iptables service
  47. service:
  48. name: iptables
  49. state: started
  50. enabled: yes
  51. register: result
  52. - name: need to pause here, otherwise the iptables service starting can sometimes cause ssh to fail
  53. pause: seconds=10
  54. when: result | changed
  55. - name: Add iptables allow rules
  56. os_firewall_manage_iptables:
  57. name: "{{ item.service }}"
  58. action: add
  59. protocol: "{{ item.port.split('/')[1] }}"
  60. port: "{{ item.port.split('/')[0] }}"
  61. with_items: "{{ os_firewall_allow }}"
  62. - name: Remove iptables rules
  63. os_firewall_manage_iptables:
  64. name: "{{ item.service }}"
  65. action: remove
  66. protocol: "{{ item.port.split('/')[1] }}"
  67. port: "{{ item.port.split('/')[0] }}"
  68. with_items: "{{ os_firewall_deny }}"