Repos with recipes to deploy some infrastructure services
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

80 lignes
3.1 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. ...