mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-12-02 15:39:57 +00:00
Refactor alarm composer and sys-service handling:
- Introduce dynamic SYSTEMCTL_ALARM_COMPOSER_SUBSERVICES based on Mailu token and MODE_RESET - Prevent inclusion of sys-ctl-alm-email when disabled - Add system_service_is_template flag to avoid state-setting on template services - Update notifications to reload daemon for @ template units - Align msmtp execution conditions See: https://chatgpt.com/share/692c7a71-afcc-800f-8aba-6800a042ce3b
This commit is contained in:
@@ -1,9 +1,7 @@
|
|||||||
- name: "Include dependent services for '{{ system_service_id }}'"
|
- name: "Include dependent services for '{{ system_service_id }}'"
|
||||||
include_role:
|
include_role:
|
||||||
name: '{{ item }}'
|
name: '{{ item }}'
|
||||||
loop:
|
loop: '{{ SYSTEMCTL_ALARM_COMPOSER_SUBSERVICES }}'
|
||||||
- sys-ctl-alm-telegram
|
|
||||||
- sys-ctl-alm-email
|
|
||||||
vars:
|
vars:
|
||||||
flush_handlers: true
|
flush_handlers: true
|
||||||
system_service_timer_enabled: false
|
system_service_timer_enabled: false
|
||||||
|
|||||||
@@ -1,7 +1,16 @@
|
|||||||
system_service_id: sys-ctl-alm-compose@
|
system_service_id: sys-ctl-alm-compose@
|
||||||
|
|
||||||
SYSTEMCTL_ALARM_COMPOSER_SUBSERVICES:
|
SYSTEMCTL_ALARM_COMPOSER_SUBSERVICES_BASE:
|
||||||
- 'sys-ctl-alm-email'
|
- 'sys-ctl-alm-email'
|
||||||
- 'sys-ctl-alm-telegram'
|
- 'sys-ctl-alm-telegram'
|
||||||
|
|
||||||
|
SYSTEMCTL_ALARM_EMAIL_ENABLED: "{{ users['no-reply'].mailu_token | default(false) and not MODE_RESET }}"
|
||||||
|
|
||||||
|
SYSTEMCTL_ALARM_COMPOSER_SUBSERVICES: >-
|
||||||
|
{{
|
||||||
|
SYSTEMCTL_ALARM_COMPOSER_SUBSERVICES_BASE
|
||||||
|
if SYSTEMCTL_ALARM_EMAIL_ENABLED else
|
||||||
|
SYSTEMCTL_ALARM_COMPOSER_SUBSERVICES_BASE | reject('equalto', 'sys-ctl-alm-email') | list
|
||||||
|
}}
|
||||||
|
|
||||||
SYSTEMCTL_ALARM_COMPOSER_DUMMY_MESSAGE: "[Info] Dummy Message: No Failure; Ansible is initializing {{ SOFTWARE_NAME }} on {{ inventory_hostname }}."
|
SYSTEMCTL_ALARM_COMPOSER_DUMMY_MESSAGE: "[Info] Dummy Message: No Failure; Ansible is initializing {{ SOFTWARE_NAME }} on {{ inventory_hostname }}."
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
src: "{{ system_service_script_src }}"
|
src: "{{ system_service_script_src }}"
|
||||||
dest: "{{ [system_service_script_dir, (system_service_script_src | basename | regex_replace('\\.j2$', ''))] | path_join }}"
|
dest: "{{ [system_service_script_dir, (system_service_script_src | basename | regex_replace('\\.j2$', ''))] | path_join }}"
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
notify: refresh systemctl service # Just refresh service for testing that script is working in debug mode. In productive due to async it shouldn't make a difference
|
notify: "{{ 'reload system daemon' if system_service_is_template | bool else 'refresh systemctl service' }}"
|
||||||
when: system_service_script_src.endswith('.j2')
|
when: system_service_script_src.endswith('.j2')
|
||||||
|
|
||||||
- name: "copy raw file"
|
- name: "copy raw file"
|
||||||
@@ -21,5 +21,5 @@
|
|||||||
dest: "{{ [system_service_script_dir, (system_service_script_src | basename)] | path_join }}"
|
dest: "{{ [system_service_script_dir, (system_service_script_src | basename)] | path_join }}"
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
when: not system_service_script_src.endswith('.j2')
|
when: not system_service_script_src.endswith('.j2')
|
||||||
notify: refresh systemctl service # Just refresh service for testing that script is working in debug mode. In productive due to async it shouldn't make a difference
|
notify: "{{ 'reload system daemon' if system_service_is_template | bool else 'refresh systemctl service' }}"
|
||||||
when: system_service_copy_files | bool
|
when: system_service_copy_files | bool
|
||||||
|
|||||||
@@ -24,10 +24,6 @@
|
|||||||
{{ system_service_role_dir }}/templates/ and {{ role_path }}/templates/.
|
{{ system_service_role_dir }}/templates/ and {{ role_path }}/templates/.
|
||||||
when: MODE_ASSERT | bool
|
when: MODE_ASSERT | bool
|
||||||
|
|
||||||
- name: Flag whether @-template is used
|
|
||||||
set_fact:
|
|
||||||
system_service_uses_at: "{{ system_service_id.endswith('@') }}"
|
|
||||||
|
|
||||||
- name: "setup systemctl '{{ system_service_id }}'"
|
- name: "setup systemctl '{{ system_service_id }}'"
|
||||||
template:
|
template:
|
||||||
src: "{{ system_service_template_src }}"
|
src: "{{ system_service_template_src }}"
|
||||||
@@ -35,7 +31,7 @@
|
|||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
notify: "{{ 'reload system daemon' if system_service_uses_at else 'refresh systemctl service' }}"
|
notify: "{{ 'reload system daemon' if system_service_is_template | bool else 'refresh systemctl service' }}"
|
||||||
|
|
||||||
- name: refresh systemctl service when SYS_SERVICE_ALL_ENABLE
|
- name: refresh systemctl service when SYS_SERVICE_ALL_ENABLE
|
||||||
block:
|
block:
|
||||||
@@ -45,6 +41,6 @@
|
|||||||
- name: refresh systemctl service
|
- name: refresh systemctl service
|
||||||
command: /bin/true
|
command: /bin/true
|
||||||
notify: refresh systemctl service
|
notify: refresh systemctl service
|
||||||
when: not system_service_uses_at
|
when: not system_service_is_template | bool
|
||||||
when: system_service_force_flush | bool
|
when: system_service_force_flush | bool
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
UNIT_SUFFIX_REMOVER_PACKAGE: "unsure"
|
UNIT_SUFFIX_REMOVER_PACKAGE: "unsure"
|
||||||
|
|
||||||
|
# meta
|
||||||
system_service_name: "{{ system_service_id | get_service_name(SOFTWARE_NAME) }}"
|
system_service_name: "{{ system_service_id | get_service_name(SOFTWARE_NAME) }}"
|
||||||
|
system_service_is_template: "{{ system_service_id.endswith('@') }}"
|
||||||
|
|
||||||
## Paths
|
## Paths
|
||||||
system_service_role_name: "{{ system_service_id | regex_replace('@','') }}"
|
system_service_role_name: "{{ system_service_id | regex_replace('@','') }}"
|
||||||
|
|||||||
@@ -2,6 +2,5 @@
|
|||||||
include_tasks: 01_core.yml
|
include_tasks: 01_core.yml
|
||||||
when:
|
when:
|
||||||
- run_once_sys_svc_msmtp is not defined or run_once_sys_svc_msmtp is false
|
- run_once_sys_svc_msmtp is not defined or run_once_sys_svc_msmtp is false
|
||||||
# Just execute when mailu_token is defined
|
|
||||||
- users['no-reply'].mailu_token is defined
|
- users['no-reply'].mailu_token is defined
|
||||||
- not MODE_RESET | bool
|
- not MODE_RESET | bool
|
||||||
Reference in New Issue
Block a user