iptables.yml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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: Start and enable iptables service
  31. service:
  32. name: iptables
  33. state: started
  34. enabled: yes
  35. register: result
  36. - name: need to pause here, otherwise the iptables service starting can sometimes cause ssh to fail
  37. pause: seconds=10
  38. when: result | changed
  39. - name: Add iptables allow rules
  40. os_firewall_manage_iptables:
  41. name: "{{ item.service }}"
  42. action: add
  43. protocol: "{{ item.port.split('/')[1] }}"
  44. port: "{{ item.port.split('/')[0] }}"
  45. with_items: "{{ os_firewall_allow }}"
  46. - name: Remove iptables rules
  47. os_firewall_manage_iptables:
  48. name: "{{ item.service }}"
  49. action: remove
  50. protocol: "{{ item.port.split('/')[1] }}"
  51. port: "{{ item.port.split('/')[0] }}"
  52. with_items: "{{ os_firewall_deny }}"