From cc6ea15d5e1f5e1c1b1027b13c34280d71bd22c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Diemer?= <stephane.diemer@ubicast.eu> Date: Wed, 13 May 2020 09:20:14 +0200 Subject: [PATCH] Split ferm setup in two roles to avoid ferm install on existing systems | refs #32028 --- roles/base/meta/main.yml | 3 +- roles/celerity/tasks/main.yml | 2 +- roles/cluster/tasks/main.yml | 2 +- roles/ferm-configure/defaults/main.yml | 19 +++++++++++ .../handlers/main.yml | 5 +-- roles/{ferm => ferm-configure}/tasks/main.yml | 34 +++++-------------- .../{ferm => ferm-install}/defaults/main.yml | 16 --------- roles/ferm-install/handlers/main.yml | 8 +++++ roles/ferm-install/tasks/main.yml | 23 +++++++++++++ .../templates/ferm.conf.j2 | 0 roles/mediaimport/tasks/main.yml | 2 +- roles/mediaserver/tasks/main.yml | 2 +- roles/mediavault/tasks/main.yml | 2 +- roles/mediaworker/tasks/main.yml | 2 +- roles/mirismanager/tasks/main.yml | 2 +- roles/msmonitor/tasks/main.yml | 2 +- roles/netcapture/tasks/main.yml | 2 +- roles/ocfs2/tasks/main.yml | 2 +- roles/postgres/tasks/main.yml | 2 +- roles/sysutils/tasks/main.yml | 2 +- roles/wowza/meta/main.yml | 6 ---- roles/wowza/tasks/main.yml | 2 +- 22 files changed, 74 insertions(+), 66 deletions(-) create mode 100644 roles/ferm-configure/defaults/main.yml rename roles/{ferm => ferm-configure}/handlers/main.yml (56%) rename roles/{ferm => ferm-configure}/tasks/main.yml (91%) rename roles/{ferm => ferm-install}/defaults/main.yml (65%) create mode 100644 roles/ferm-install/handlers/main.yml create mode 100644 roles/ferm-install/tasks/main.yml rename roles/{ferm => ferm-install}/templates/ferm.conf.j2 (100%) delete mode 100644 roles/wowza/meta/main.yml diff --git a/roles/base/meta/main.yml b/roles/base/meta/main.yml index bddea6df..e531fa82 100644 --- a/roles/base/meta/main.yml +++ b/roles/base/meta/main.yml @@ -10,7 +10,8 @@ dependencies: - role: users - role: postfix - role: ntp - - role: ferm + - role: ferm-install + - role: ferm-configure - role: fail2ban ... diff --git a/roles/celerity/tasks/main.yml b/roles/celerity/tasks/main.yml index fdc66eb5..4adaea82 100644 --- a/roles/celerity/tasks/main.yml +++ b/roles/celerity/tasks/main.yml @@ -38,7 +38,7 @@ ferm_output_rules: "{{ celerity_ferm_output_rules }}" ferm_global_settings: "{{ celerity_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers diff --git a/roles/cluster/tasks/main.yml b/roles/cluster/tasks/main.yml index b0c08ed8..a7af0e3d 100644 --- a/roles/cluster/tasks/main.yml +++ b/roles/cluster/tasks/main.yml @@ -250,6 +250,6 @@ ferm_input_rules: "{{ cluster_fw_input }}" ferm_output_rules: "{{ cluster_fw_output }}" include_role: - name: ferm + name: ferm-configure ... diff --git a/roles/ferm-configure/defaults/main.yml b/roles/ferm-configure/defaults/main.yml new file mode 100644 index 00000000..947f9f5b --- /dev/null +++ b/roles/ferm-configure/defaults/main.yml @@ -0,0 +1,19 @@ +--- + +# filename into which rules will be written +# /etc/ferm/{ferm|input|output|forward}.d/<filename>.conf +ferm_rules_filename: default + +# input rule +ferm_input_rules: [] + +# ouput rule +ferm_output_rules: [] + +# forward rule +ferm_forward_rules: [] + +# global settings to be put in ferm.d directory +ferm_global_settings: + +... diff --git a/roles/ferm/handlers/main.yml b/roles/ferm-configure/handlers/main.yml similarity index 56% rename from roles/ferm/handlers/main.yml rename to roles/ferm-configure/handlers/main.yml index 396bf92f..920efd0e 100644 --- a/roles/ferm/handlers/main.yml +++ b/roles/ferm-configure/handlers/main.yml @@ -1,10 +1,7 @@ --- -- name: reload systemd - systemd: - daemon_reload: true - - name: restart ferm + when: ansible_facts.services['ferm.service'] is defined systemd: name: ferm state: restarted diff --git a/roles/ferm/tasks/main.yml b/roles/ferm-configure/tasks/main.yml similarity index 91% rename from roles/ferm/tasks/main.yml rename to roles/ferm-configure/tasks/main.yml index 9223a58b..a10cf787 100644 --- a/roles/ferm/tasks/main.yml +++ b/roles/ferm-configure/tasks/main.yml @@ -1,27 +1,8 @@ --- -- name: packages - apt: - force_apt_get: true - install_recommends: false - name: "{{ ferm_packages }}" - -- name: configuration - notify: restart ferm - template: - src: ferm.conf.j2 - dest: /etc/ferm/ferm.conf - backup: true - -- name: global - when: ferm_global_settings | d(false) - notify: restart ferm - copy: - dest: /etc/ferm/ferm.d/{{ ferm_rules_filename }}.conf - content: "{{ ferm_global_settings }}" - - name: directories loop: + - /etc/ferm/ferm.d - /etc/ferm/input.d - /etc/ferm/output.d - /etc/ferm/forward.d @@ -29,6 +10,13 @@ path: "{{ item }}" state: directory +- name: global + when: ferm_global_settings | d(false) + notify: restart ferm + copy: + dest: /etc/ferm/ferm.d/{{ ferm_rules_filename }}.conf + content: "{{ ferm_global_settings }}" + - name: input when: ferm_input_rules | length > 0 notify: restart ferm @@ -80,10 +68,4 @@ {% if rule.policy is defined and rule.policy %}{{ rule.policy | upper }}{% else %}ACCEPT{% endif %}; {% endfor %} -- name: service - systemd: - name: ferm - enabled: true - state: started - ... diff --git a/roles/ferm/defaults/main.yml b/roles/ferm-install/defaults/main.yml similarity index 65% rename from roles/ferm/defaults/main.yml rename to roles/ferm-install/defaults/main.yml index f594f1ec..fc3d06fb 100644 --- a/roles/ferm/defaults/main.yml +++ b/roles/ferm-install/defaults/main.yml @@ -19,23 +19,7 @@ ferm_forward_policy: DROP ferm_forward_log: true ferm_forward_log_prefix: "{{ ferm_forward_policy }} FORWARD " -# filename into which rules will be written -# /etc/ferm/{ferm|input|output|forward}.d/<filename>.conf -ferm_rules_filename: default - # enable anti-lockout rule ferm_antilockout_enabled: true -# input rule -ferm_input_rules: [] - -# ouput rule -ferm_output_rules: [] - -# forward rule -ferm_forward_rules: [] - -# global settings to be put in ferm.d directory -ferm_global_settings: - ... diff --git a/roles/ferm-install/handlers/main.yml b/roles/ferm-install/handlers/main.yml new file mode 100644 index 00000000..c2f8c0cb --- /dev/null +++ b/roles/ferm-install/handlers/main.yml @@ -0,0 +1,8 @@ +--- + +- name: restart ferm + systemd: + name: ferm + state: restarted + +... diff --git a/roles/ferm-install/tasks/main.yml b/roles/ferm-install/tasks/main.yml new file mode 100644 index 00000000..f9d89a3b --- /dev/null +++ b/roles/ferm-install/tasks/main.yml @@ -0,0 +1,23 @@ +--- + +- name: packages + apt: + force_apt_get: true + install_recommends: false + name: "{{ ferm_packages }}" + +- name: configuration + notify: restart ferm + template: + src: ferm.conf.j2 + dest: /etc/ferm/ferm.conf + backup: true + +- name: service + systemd: + name: ferm + enabled: true + masked: no + state: started + +... diff --git a/roles/ferm/templates/ferm.conf.j2 b/roles/ferm-install/templates/ferm.conf.j2 similarity index 100% rename from roles/ferm/templates/ferm.conf.j2 rename to roles/ferm-install/templates/ferm.conf.j2 diff --git a/roles/mediaimport/tasks/main.yml b/roles/mediaimport/tasks/main.yml index d4b9835d..394e20cb 100644 --- a/roles/mediaimport/tasks/main.yml +++ b/roles/mediaimport/tasks/main.yml @@ -171,7 +171,7 @@ ferm_output_rules: "{{ import_ferm_output_rules }}" ferm_global_settings: "{{ import_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers diff --git a/roles/mediaserver/tasks/main.yml b/roles/mediaserver/tasks/main.yml index e3a37940..84515493 100644 --- a/roles/mediaserver/tasks/main.yml +++ b/roles/mediaserver/tasks/main.yml @@ -123,7 +123,7 @@ ferm_output_rules: "{{ server_ferm_output_rules }}" ferm_global_settings: "{{ server_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers diff --git a/roles/mediavault/tasks/main.yml b/roles/mediavault/tasks/main.yml index 4b292ff6..9aff91e4 100644 --- a/roles/mediavault/tasks/main.yml +++ b/roles/mediavault/tasks/main.yml @@ -111,7 +111,7 @@ ferm_output_rules: "{{ mv_ferm_output_rules }}" ferm_global_settings: "{{ mv_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers diff --git a/roles/mediaworker/tasks/main.yml b/roles/mediaworker/tasks/main.yml index 8663c1ce..29aed5a0 100644 --- a/roles/mediaworker/tasks/main.yml +++ b/roles/mediaworker/tasks/main.yml @@ -28,7 +28,7 @@ ferm_output_rules: "{{ worker_ferm_output_rules }}" ferm_global_settings: "{{ worker_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers diff --git a/roles/mirismanager/tasks/main.yml b/roles/mirismanager/tasks/main.yml index 80ebfd4b..6400f143 100644 --- a/roles/mirismanager/tasks/main.yml +++ b/roles/mirismanager/tasks/main.yml @@ -88,7 +88,7 @@ ferm_output_rules: "{{ manager_ferm_output_rules }}" ferm_global_settings: "{{ manager_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers diff --git a/roles/msmonitor/tasks/main.yml b/roles/msmonitor/tasks/main.yml index e8918495..68de7d55 100644 --- a/roles/msmonitor/tasks/main.yml +++ b/roles/msmonitor/tasks/main.yml @@ -65,7 +65,7 @@ ferm_output_rules: "{{ monitor_ferm_output_rules }}" ferm_global_settings: "{{ monitor_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers diff --git a/roles/netcapture/tasks/main.yml b/roles/netcapture/tasks/main.yml index b514e748..3a58e94b 100644 --- a/roles/netcapture/tasks/main.yml +++ b/roles/netcapture/tasks/main.yml @@ -77,7 +77,7 @@ ferm_output_rules: "{{ netcapture_ferm_output_rules }}" ferm_global_settings: "{{ netcapture_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers diff --git a/roles/ocfs2/tasks/main.yml b/roles/ocfs2/tasks/main.yml index 844a1b07..7791cab5 100644 --- a/roles/ocfs2/tasks/main.yml +++ b/roles/ocfs2/tasks/main.yml @@ -48,6 +48,6 @@ ferm_output_rules: "{{ ocfs2_ferm_output_rules }}" ferm_global_settings: "{{ ocfs2_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure ... diff --git a/roles/postgres/tasks/main.yml b/roles/postgres/tasks/main.yml index 3369d907..babca7af 100644 --- a/roles/postgres/tasks/main.yml +++ b/roles/postgres/tasks/main.yml @@ -108,7 +108,7 @@ ferm_output_rules: "{{ pg_ferm_output_rules }}" ferm_global_settings: "{{ pg_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers diff --git a/roles/sysutils/tasks/main.yml b/roles/sysutils/tasks/main.yml index 80bbda98..ac51466c 100644 --- a/roles/sysutils/tasks/main.yml +++ b/roles/sysutils/tasks/main.yml @@ -29,6 +29,6 @@ ferm_output_rules: "{{ sysutils_ferm_output_rules }}" ferm_global_settings: "{{ sysutils_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure ... diff --git a/roles/wowza/meta/main.yml b/roles/wowza/meta/main.yml deleted file mode 100644 index e45d692a..00000000 --- a/roles/wowza/meta/main.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- - -dependencies: - - role: base - -... diff --git a/roles/wowza/tasks/main.yml b/roles/wowza/tasks/main.yml index b538a833..49dca090 100644 --- a/roles/wowza/tasks/main.yml +++ b/roles/wowza/tasks/main.yml @@ -117,7 +117,7 @@ ferm_output_rules: "{{ wowza_ferm_output_rules }}" ferm_global_settings: "{{ wowza_ferm_global_settings }}" include_role: - name: ferm + name: ferm-configure - meta: flush_handlers -- GitLab