From 8084f6b0073e9c41fb71ae1f432fcb69dc85e0db Mon Sep 17 00:00:00 2001 From: adam Date: Fri, 10 Mar 2023 15:12:26 -0600 Subject: [PATCH 1/7] feat: allow specifying filename of your apache config file --- requirements.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.yml b/requirements.yml index 65a26bb..d3a1545 100644 --- a/requirements.yml +++ b/requirements.yml @@ -9,6 +9,6 @@ collections: - 'community.crypto' roles: - - src: 'ansibleguy.infra_apache' + - src: 'anon8675309.infra_apache' - src: 'ansibleguy.infra_certs' - src: 'ansibleguy.infra_mariadb' From a8b4d634c09148f5f3a24dc9976fa60092726a6f Mon Sep 17 00:00:00 2001 From: adam Date: Fri, 10 Mar 2023 15:27:44 -0600 Subject: [PATCH 2/7] feat: allow zoneminder's apache config to contain the FQDN --- tasks/debian/web.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/debian/web.yml b/tasks/debian/web.yml index b98afd0..e159663 100644 --- a/tasks/debian/web.yml +++ b/tasks/debian/web.yml @@ -2,7 +2,7 @@ - name: ZoneMinder | Debian | Webserver | Managing Apache2 ansible.builtin.include_role: - name: ansibleguy.infra_apache + name: anon8675309.infra_apache vars: apache: security: "{{ ZM_CONFIG.apache.security }}" From a80b81dfdbea35bda76636458aacb99fcb0ff164 Mon Sep 17 00:00:00 2001 From: adam Date: Fri, 10 Mar 2023 15:50:39 -0600 Subject: [PATCH 3/7] Allow passing in ssl properties such as path to the TLS keys to the apache configuration --- tasks/debian/web.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks/debian/web.yml b/tasks/debian/web.yml index e159663..dcc4e4f 100644 --- a/tasks/debian/web.yml +++ b/tasks/debian/web.yml @@ -8,6 +8,7 @@ security: "{{ ZM_CONFIG.apache.security }}" modules: present: "{{ ZM_HC.apache.modules }}" + ssl: "{{ ZM_CONFIG.apache.ssl }}" sites: zoneminder: "{{ zm_apache_path | combine(ZM_CONFIG.apache, recursive=true) }}" no_log: true From 667ac2f91e95f865fa61b290790fe0fe0c38f81d Mon Sep 17 00:00:00 2001 From: adam Date: Fri, 10 Mar 2023 16:58:05 -0600 Subject: [PATCH 4/7] feat: allow zoneminder's apache config to contain the FQDN --- tasks/debian/web.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/debian/web.yml b/tasks/debian/web.yml index dcc4e4f..273655a 100644 --- a/tasks/debian/web.yml +++ b/tasks/debian/web.yml @@ -20,7 +20,7 @@ - name: ZoneMinder | Debian | Webserver | Adding apache app-config ansible.builtin.template: src: 'templates/etc/apache2/sites-available/zoneminder.conf.j2' - dest: '/etc/apache2/sites-available/site_zoneminder_app.conf' + dest: "/etc/apache2/sites-available/site_{{ZM_CONFIG.apache.name | default('zoneminder')}}_app.conf" owner: 'root' group: 'root' mode: 0644 From 6d3bc44528d69dde9d607a82710bc74a84054c75 Mon Sep 17 00:00:00 2001 From: anon8675309 Date: Thu, 6 Feb 2025 08:55:21 -0600 Subject: [PATCH 5/7] changed namespace to import to ansible galaxy --- meta/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/main.yml b/meta/main.yml index 04f8707..c37515f 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -2,7 +2,7 @@ galaxy_info: author: 'AnsibleGuy ' - namespace: 'ansibleguy' + namespace: 'anon8675309' license: 'MIT' issue_tracker_url: 'https://github.com/ansibleguy/sw_zoneminder/issues' min_ansible_version: '2.14' From 744bb4840ed16ecb340479c44d8962f30b109fe2 Mon Sep 17 00:00:00 2001 From: anon8675309 Date: Thu, 6 Feb 2025 09:44:14 -0600 Subject: [PATCH 6/7] fixed filter plugins that are used by submodules but not available --- filter_plugins/utils.py | 64 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 filter_plugins/utils.py diff --git a/filter_plugins/utils.py b/filter_plugins/utils.py new file mode 100644 index 0000000..48325d1 --- /dev/null +++ b/filter_plugins/utils.py @@ -0,0 +1,64 @@ +from re import sub as regex_replace + + +class FilterModule(object): + + def filters(self): + return { + "safe_key": self.safe_key, + "all_true": self.all_true, + "prepare_letsencrypt": self.prepare_letsencrypt, + "ensure_list": self.ensure_list, + "enmod_list": self.enmod_list, + "mod_list": self.mod_list, + "mgmt_pwd": self.mgmt_pwd, + } + + @staticmethod + def safe_key(key: str) -> str: + return regex_replace(r'[^0-9a-zA-Z\.]+', '', key.replace(' ', '_')) + + @staticmethod + def all_true(data: list) -> bool: + return all(data) + + @staticmethod + def prepare_letsencrypt(site: dict, name: str) -> dict: + domains = [site['domain']] + domains.extend(site['aliases']) + return { + name: { + 'domains': domains, + 'key_size': site['letsencrypt']['key_size'], + 'email': site['letsencrypt']['email'], + 'state': site['state'], + } + } + + @classmethod + def enmod_list(cls, present: list, absent: list) -> str: + absent_list = cls.ensure_list(absent) + return ' '.join([mod for mod in cls.ensure_list(present) if mod not in absent_list]) + + @classmethod + def mod_list(cls, mods: (str, list)) -> str: + return ' '.join(cls.ensure_list(mods)) + + @staticmethod + def ensure_list(data: (str, list)) -> list: + # if user supplied a string instead of a list => convert it to match our expectations + if isinstance(data, list): + return data + + return [data] + + def mgmt_pwd(self, instance: dict) -> str: + return self.fallback(opt1=instance['ansible_pwd'], opt2=instance['root_pwd']) + + @staticmethod + def fallback(opt1: str, opt2: str) -> str: + if opt1 not in [None, '', 'None', 'none', ' ']: + return opt1 + + return opt2 + From 4ab695e8d03ce892c7bb27c8d754494a9f08bb46 Mon Sep 17 00:00:00 2001 From: anon8675309 Date: Thu, 6 Feb 2025 10:35:14 -0600 Subject: [PATCH 7/7] added option to override the version of PHP --- defaults/main/0_hardcoded.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/defaults/main/0_hardcoded.yml b/defaults/main/0_hardcoded.yml index 1c89b22..a12720a 100644 --- a/defaults/main/0_hardcoded.yml +++ b/defaults/main/0_hardcoded.yml @@ -3,6 +3,7 @@ NONE_VALUES: [none, '', ' '] random_pwd_length: '50' tmp_pwd_file_prefix: '/tmp/.ansibleguy.sw_zoneminder' +zm_php_version_override: '7.4' ZM_HC: packages: @@ -12,7 +13,7 @@ ZM_HC: repo_key: "https://zmrepo.zoneminder.com/{{ ansible_distribution | lower }}/archive-keyring.gpg" repo: "deb https://zmrepo.zoneminder.com/{{ ansible_distribution | lower }}/release {{ ansible_lsb.codename | default('buster') }}/" - php_version: '7.4' + php_version: '{{zm_php_version_override}}' apache: modules: ['ssl', 'headers', 'rewrite', 'http2', 'cgi']