From 5954185834058760c9aaa6e493567e76ad1337d7 Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Tue, 5 May 2026 17:25:32 -0500 Subject: [PATCH] Rewrite to act like rest of roles, add common OS list Signed-off-by: Jason Rothstein --- tasks/main.yml | 114 +++++++++++++++++++++++++------- vars/AlmaLinux-10-default.yml | 8 +++ vars/AlmaLinux-8-default.yml | 8 +++ vars/AlmaLinux-9-default.yml | 8 +++ vars/CentOS-10-default.yml | 8 +++ vars/CentOS-8-default.yml | 8 +++ vars/CentOS-9-default.yml | 8 +++ vars/Debian-11-default.yml | 8 +++ vars/Debian-12-default.yml | 8 +++ vars/Debian-13-default.yml | 8 +++ vars/Fedora-42-default.yml | 8 +++ vars/Fedora-43-default.yml | 8 +++ vars/Fedora-44-default.yml | 8 +++ vars/OracleLinux-10-default.yml | 8 +++ vars/OracleLinux-8-default.yml | 8 +++ vars/OracleLinux-9-default.yml | 8 +++ vars/Rocky-10-default.yml | 8 +++ vars/Rocky-8-default.yml | 8 +++ vars/Rocky-9-default.yml | 8 +++ vars/Ubuntu-26-default.yml | 8 +++ 20 files changed, 243 insertions(+), 23 deletions(-) create mode 100644 vars/AlmaLinux-10-default.yml create mode 100644 vars/AlmaLinux-8-default.yml create mode 100644 vars/AlmaLinux-9-default.yml create mode 100644 vars/CentOS-10-default.yml create mode 100644 vars/CentOS-8-default.yml create mode 100644 vars/CentOS-9-default.yml create mode 100644 vars/Debian-11-default.yml create mode 100644 vars/Debian-12-default.yml create mode 100644 vars/Debian-13-default.yml create mode 100644 vars/Fedora-42-default.yml create mode 100644 vars/Fedora-43-default.yml create mode 100644 vars/Fedora-44-default.yml create mode 100644 vars/OracleLinux-10-default.yml create mode 100644 vars/OracleLinux-8-default.yml create mode 100644 vars/OracleLinux-9-default.yml create mode 100644 vars/Rocky-10-default.yml create mode 100644 vars/Rocky-8-default.yml create mode 100644 vars/Rocky-9-default.yml create mode 100644 vars/Ubuntu-26-default.yml diff --git a/tasks/main.yml b/tasks/main.yml index 8f4f488..7b8791e 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,5 +1,24 @@ --- # tasks file for ensure_timezone +- name: 'include variables' + when: + - ansible_facts["system"] == 'Linux' + include_vars: + file: '{{ lookup("first_found", findme ) }}' + name: 'ensure_timezone' + vars: + findme: + files: + - '{{ ansible_facts["distribution"] }}-{{ ansible_facts["distribution_major_version"] }}-{{ ansible_facts["architecture"] }}.yml' + - '{{ ansible_facts["distribution"] }}-{{ ansible_facts["distribution_major_version"] }}-default.yml' + - '{{ ansible_facts["distribution"] }}-default.yml' + - '{{ ansible_os_family }}-{{ ansible_facts["distribution_major_version"] }}-{{ ansible_facts["architecture"] }}.yml' + - '{{ ansible_os_family }}-{{ ansible_facts["distribution_major_version"] }}-default.yml' + - '{{ ansible_os_family }}-default.yml' + - 'default.yml' + paths: + - '../vars/' + errors: 'ignore' - name: 'package discovery' when: - ansible_facts["system"] == 'Linux' @@ -14,50 +33,99 @@ community.general.timezone: hwclock: '{{ timezone_hwclock }}' name: '{{ timezone_name }}' - register: 'results' -- name: 'Restart if time zone changed' + notify: + - 'ensure_timezone.package_facts' + - 'ensure_timezone.service_facts' + - 'ensure_timezone.service_restart' +- name: 'ensure packages' when: - ansible_facts["system"] == 'Linux' - - services is defined - - services[item.name] is defined - - results.changed - ansible.builtin.service: - enabled: '{{ item.enabled }}' + - ensure_timezone is defined + - ensure_timezone.package_list is defined + - ensure_timezone.package_list is iterable + ansible.builtin.package: name: '{{ item.name }}' state: '{{ item.state }}' - loop: - - enabled: 'yes' - name: 'crond' - state: 'restarted' - - enabled: 'yes' - name: 'crond.service' - state: 'restarted' + loop: '{{ ensure_timezone.package_list }}' loop_control: label: '{{ item.name }} will be {{ item.state }}' notify: - 'ensure_timezone.package_facts' - 'ensure_timezone.service_facts' +- name: 'ensure configurations' + when: + - ansible_facts["system"] == 'Linux' + - ensure_timezone is defined + - ensure_timezone.template_list is defined + - ensure_timezone.template_list is iterable + ansible.builtin.template: + backup: 'no' + dest: '{{ item.dest }}' + group: '{{ item.group | default(omit) }}' + mode: '{{ item.mode | default(omit) }}' + owner: '{{ item.owner | default(omit) }}' + selevel: '{{ iteml.selevel | default(omit) }}' + serole: '{{ item.serole | default(omit) }}' + setype: '{{ item.setype | default(omit) }}' + seuser: '{{ item.seuser | default(omit) }}' + src: '{{ item.src }}' + loop: '{{ ensure_timezone.template_list }}' + loop_control: + label: '{{ item.dest }} will be ensured' + notify: + - 'ensure_timezone.package_facts' + - 'ensure_timezone.service_facts' + - 'ensure_timezone.service_reload' + - 'ensure_timezone.service_restart' - name: 'ensure services' when: - ansible_facts["system"] == 'Linux' - - services is defined - - services[item.name] is defined + - ensure_timezone is defined + - ensure_timezone.service_list is defined + - ensure_timezone.service_list is iterable ansible.builtin.service: enabled: '{{ item.enabled }}' name: '{{ item.name }}' state: '{{ item.state }}' - loop: - - enabled: 'yes' - name: 'crond' - state: 'started' - - enabled: 'yes' - name: 'crond.service' - state: 'started' + loop: '{{ ensure_timezone.service_list }}' loop_control: label: '{{ item.name }} will be {{ item.state }}' notify: - 'ensure_timezone.package_facts' - 'ensure_timezone.service_facts' +- name: 'Ensure SELinux is configured' + when: + - ansible_facts["system"] == 'Linux' + - ensure_timezone is defined + - ensure_timezone.selinux_policy is defined + - ensure_timezone.selinux_state is defined + ansible.posix.selinux: + policy: '{{ ensure_timezone.selinux_policy }}' + state: '{{ ensure_timezone.selinux_state }}' + register: 'results' +- name: 'Reboot if required' + when: + - ansible_facts["system"] == 'Linux' + - ensure_timezone is defined + - ensure_timezone.selinux_policy is defined + - ensure_timezone.selinux_state is defined + - results is defined + - results.reboot_required is defined + - results.reboot_required + reboot: +- name: 'ensure seboolean' + when: + - ansible_facts["system"] == 'Linux' + - ensure_timezone is defined + - ensure_timezone.seboolean_list is defined + - ensure_timezone.seboolean_list is iterable + ansible.posix.seboolean: + name: '{{ item.name }}' + persistent: '{{ item.persistent }}' + state: '{{ item.state }}' + loop: '{{ ensure_timezone.seboolean_list }}' + loop_control: + label: '{{ item.name }} will be {{ item.state }}' - name: 'flush handlers' meta: 'flush_handlers' ... diff --git a/vars/AlmaLinux-10-default.yml b/vars/AlmaLinux-10-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/AlmaLinux-10-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/AlmaLinux-8-default.yml b/vars/AlmaLinux-8-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/AlmaLinux-8-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/AlmaLinux-9-default.yml b/vars/AlmaLinux-9-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/AlmaLinux-9-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/CentOS-10-default.yml b/vars/CentOS-10-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/CentOS-10-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/CentOS-8-default.yml b/vars/CentOS-8-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/CentOS-8-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/CentOS-9-default.yml b/vars/CentOS-9-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/CentOS-9-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/Debian-11-default.yml b/vars/Debian-11-default.yml new file mode 100644 index 0000000..bf9898b --- /dev/null +++ b/vars/Debian-11-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'cron.service' + state: 'started' +... + diff --git a/vars/Debian-12-default.yml b/vars/Debian-12-default.yml new file mode 100644 index 0000000..bf9898b --- /dev/null +++ b/vars/Debian-12-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'cron.service' + state: 'started' +... + diff --git a/vars/Debian-13-default.yml b/vars/Debian-13-default.yml new file mode 100644 index 0000000..bf9898b --- /dev/null +++ b/vars/Debian-13-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'cron.service' + state: 'started' +... + diff --git a/vars/Fedora-42-default.yml b/vars/Fedora-42-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/Fedora-42-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/Fedora-43-default.yml b/vars/Fedora-43-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/Fedora-43-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/Fedora-44-default.yml b/vars/Fedora-44-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/Fedora-44-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/OracleLinux-10-default.yml b/vars/OracleLinux-10-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/OracleLinux-10-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/OracleLinux-8-default.yml b/vars/OracleLinux-8-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/OracleLinux-8-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/OracleLinux-9-default.yml b/vars/OracleLinux-9-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/OracleLinux-9-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/Rocky-10-default.yml b/vars/Rocky-10-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/Rocky-10-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/Rocky-8-default.yml b/vars/Rocky-8-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/Rocky-8-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/Rocky-9-default.yml b/vars/Rocky-9-default.yml new file mode 100644 index 0000000..986a453 --- /dev/null +++ b/vars/Rocky-9-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'crond.service' + state: 'started' +... + diff --git a/vars/Ubuntu-26-default.yml b/vars/Ubuntu-26-default.yml new file mode 100644 index 0000000..bf9898b --- /dev/null +++ b/vars/Ubuntu-26-default.yml @@ -0,0 +1,8 @@ +--- +# vars file for ensure_timezone +service_list: + - enabled: 'yes' + name: 'cron.service' + state: 'started' +... +