Repos with recipes to deploy some infrastructure services
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 

80 líneas
3.2 KiB

  1. ---
  2. - name: Ensure iptables is present
  3. apt:
  4. name: 'iptables'
  5. update_cache: true
  6. state: present
  7. when: ansible_facts.os_family == "Debian"
  8. - name: Ensure iptables is present
  9. yum:
  10. name: 'iptables'
  11. update_cache: true
  12. state: present
  13. when: ansible_facts.os_family == "RedHat"
  14. - name: Save current iptable config if exist
  15. copy:
  16. dest: "{{ iptables_config_file }}.fallback"
  17. src: "{{ iptables_config_file }}"
  18. remote_src: yes
  19. failed_when: false
  20. - name: Apply rules
  21. iptables:
  22. ip_version: "{{ item.ip_version | default('ipv4', true) }}"
  23. action: "{{ item.action | default(omit, true) }}"
  24. rule_num: "{{ item.rule_num | default(omit, true) }}"
  25. chain: "{{ item.chain | default('INPUT', true) }}"
  26. flush: "{{ item.flush | default(omit, true) }}"
  27. policy: "{{ item.policy | default(omit, true) }}"
  28. table: "{{ item.table | default('filter', true) }}"
  29. source: "{{ item.source | default(omit, true) }}"
  30. destination: "{{ item.destination | default(omit, true) }}"
  31. src_range: "{{ item.src_range | default(omit, true) }}"
  32. dst_range: "{{ item.dst_range | default(omit, true) }}"
  33. source_port: "{{ item.source_port | default(omit, true) }}"
  34. destination_port: "{{ item.destination_port | default(omit, true) }}"
  35. protocol: "{{ item.protocol | default(omit, true) }}"
  36. icmp_type: "{{ item.icmp_type | default(omit, true) }}"
  37. in_interface: "{{ item.in_interface | default(omit, true) }}"
  38. out_interface: "{{ item.out_interface | default(omit, true) }}"
  39. goto: "{{ item.goto | default(omit, true) }}"
  40. jump: "{{ item.jump | default(omit, true) }}"
  41. cstate: "{{ item.cstate | default(omit, true) }}"
  42. fragment: "{{ item.fragment | default(omit, true) }}"
  43. gateway: "{{ item.gateway | default(omit, true) }}"
  44. gid_owner: "{{ item.gid_owner | default(omit, true) }}"
  45. uid_owner: "{{ item.uid_owner | default(omit, true) }}"
  46. limit: "{{ item.limit | default(omit, true) }}"
  47. limit_burst: "{{ item.limit_burst | default(omit, true) }}"
  48. log_level: "{{ item.log_level | default(omit, true) }}"
  49. log_prefix: "{{ item.log_prefix | default(omit, true) }}"
  50. match: "{{ item.match | default(omit, true) }}"
  51. reject_with: "{{ item.reject_with | default(omit, true) }}"
  52. set_counters: "{{ item.set_counters | default(omit, true) }}"
  53. set_dscp_mark: "{{ item.set_dscp_mark | default(omit, true) }}"
  54. set_dscp_mark_class: "{{ item.set_dscp_mark_class | default(omit, true) }}"
  55. syn: "{{ item.syn | default('ignore', true) }}"
  56. tcp_flags: "{{ item.tcp_flags | default(omit, true) }}"
  57. to_source: "{{ item.to_source | default(omit, true) }}"
  58. to_destination: "{{ item.to_destination | default(omit, true) }}"
  59. to_ports: "{{ item.to_ports | default(omit, true) }}"
  60. state: "{{ item.state | default('present', true) }}"
  61. with_items: "{{ iptables_rules }}"
  62. - name: Ensure iptables service is running
  63. service:
  64. name: iptables
  65. state: started
  66. enabled: yes
  67. - name: Save current iptables rules
  68. shell: "iptables-save > {{ iptables_config_file }} >> {{ iptables_config_file }}"
  69. - name: Reload saved iptables rules
  70. service:
  71. name: iptables
  72. state: reloaded
  73. ...