diff --git a/group_vars/all/07_services.yml b/group_vars/all/07_services.yml index d668c540..deff8163 100644 --- a/group_vars/all/07_services.yml +++ b/group_vars/all/07_services.yml @@ -2,19 +2,20 @@ # Services ## Meta -SYS_SERVICE_SUFFIX: ".{{ SOFTWARE_NAME | lower }}.service" +SYS_SERVICE_SUFFIX: ".{{ SOFTWARE_NAME | lower }}.service" ## Names -SYS_SERVICE_CLEANUP_BACKUPS_FAILED: "{{ 'sys-ctl-cln-faild-bkps' | get_service_name(SOFTWARE_NAME) }}" -SYS_SERVICE_OPTIMIZE_DRIVE: "{{ 'svc-opt-ssd-hdd' | get_service_name(SOFTWARE_NAME) }}" -SYS_SERVICE_BACKUP_RMT_2_LOC: "{{ 'svc-bkp-rmt-2-loc' | get_service_name(SOFTWARE_NAME) }}" -SYS_SERVICE_BACKUP_DOCKER_2_LOC: "{{ 'sys-ctl-bkp-docker-2-loc' | get_service_name(SOFTWARE_NAME) }}" -SYS_SERVICE_REPAIR_DOCKER_SOFT: "{{ 'sys-ctl-rpr-docker-soft' | get_service_name(SOFTWARE_NAME) }}" -SYS_SERVICE_REPAIR_DOCKER_HARD: "{{ 'sys-ctl-rpr-docker-hard' | get_service_name(SOFTWARE_NAME) }}" -SYS_SERVICE_UPDATE_DOCKER: "{{ 'update-docker' | get_service_name(SOFTWARE_NAME) }}" +SYS_SERVICE_CLEANUP_BACKUPS_FAILED: "{{ 'sys-ctl-cln-faild-bkps' | get_service_name(SOFTWARE_NAME) }}" +SYS_SERVICE_CLEANUP_ANONYMOUS_VOLUMES: "{{ 'sys-ctl-cln-anon-volumes' | get_service_name(SOFTWARE_NAME) }}" +SYS_SERVICE_OPTIMIZE_DRIVE: "{{ 'svc-opt-ssd-hdd' | get_service_name(SOFTWARE_NAME) }}" +SYS_SERVICE_BACKUP_RMT_2_LOC: "{{ 'svc-bkp-rmt-2-loc' | get_service_name(SOFTWARE_NAME) }}" +SYS_SERVICE_BACKUP_DOCKER_2_LOC: "{{ 'sys-ctl-bkp-docker-2-loc' | get_service_name(SOFTWARE_NAME) }}" +SYS_SERVICE_REPAIR_DOCKER_SOFT: "{{ 'sys-ctl-rpr-docker-soft' | get_service_name(SOFTWARE_NAME) }}" +SYS_SERVICE_REPAIR_DOCKER_HARD: "{{ 'sys-ctl-rpr-docker-hard' | get_service_name(SOFTWARE_NAME) }}" +SYS_SERVICE_UPDATE_DOCKER: "{{ 'update-docker' | get_service_name(SOFTWARE_NAME) }}" ## On Failure -SYS_SERVICE_ON_FAILURE_COMPOSE: "{{ ('sys-ctl-alm-compose@') | get_service_name(SOFTWARE_NAME, False) }}%n.service" +SYS_SERVICE_ON_FAILURE_COMPOSE: "{{ ('sys-ctl-alm-compose@') | get_service_name(SOFTWARE_NAME, False) }}%n.service" ## Groups SYS_SERVICE_GROUP_BACKUPS: > diff --git a/roles/sys-svc-cln-anon-volumes/README.md b/roles/sys-ctl-cln-anon-volumes/README.md similarity index 100% rename from roles/sys-svc-cln-anon-volumes/README.md rename to roles/sys-ctl-cln-anon-volumes/README.md diff --git a/roles/sys-svc-cln-anon-volumes/meta/main.yml b/roles/sys-ctl-cln-anon-volumes/meta/main.yml similarity index 100% rename from roles/sys-svc-cln-anon-volumes/meta/main.yml rename to roles/sys-ctl-cln-anon-volumes/meta/main.yml diff --git a/roles/sys-ctl-cln-anon-volumes/tasks/main.yml b/roles/sys-ctl-cln-anon-volumes/tasks/main.yml new file mode 100644 index 00000000..956bf45f --- /dev/null +++ b/roles/sys-ctl-cln-anon-volumes/tasks/main.yml @@ -0,0 +1,18 @@ +- block: + - name: "pkgmgr install" + include_role: + name: pkgmgr-install + vars: + package_name: dockreap + + - include_role: + name: sys-service + vars: + system_service_tpl_on_failure: "{{ SYS_SERVICE_ON_FAILURE_COMPOSE }}" + system_service_tpl_exec_start: dockreap --no-confirmation + system_service_tpl_exec_start_pre: /usr/bin/python {{ PATH_SYSTEM_LOCK_SCRIPT }} {{ SYS_SERVICE_GROUP_MANIPULATION | join(' ') }} --ignore {{ SYS_SERVICE_CLEANUP_ANONYMOUS_VOLUMES }} --timeout "{{ SYS_TIMEOUT_CLEANUP_SERVICES }}" + system_service_copy_files: false + + - include_tasks: utils/run_once.yml + when: + - run_once_sys_ctl_cln_anon_volumes is not defined diff --git a/roles/sys-ctl-cln-anon-volumes/vars/main.yml b/roles/sys-ctl-cln-anon-volumes/vars/main.yml new file mode 100644 index 00000000..d7cf29d3 --- /dev/null +++ b/roles/sys-ctl-cln-anon-volumes/vars/main.yml @@ -0,0 +1 @@ +system_service_id: sys-ctl-cln-anon-volumes \ No newline at end of file diff --git a/roles/sys-ctl-rpr-docker-hard/tasks/01_core.yml b/roles/sys-ctl-rpr-docker-hard/tasks/01_core.yml index 660b9197..41a2802d 100644 --- a/roles/sys-ctl-rpr-docker-hard/tasks/01_core.yml +++ b/roles/sys-ctl-rpr-docker-hard/tasks/01_core.yml @@ -6,5 +6,6 @@ - include_role: name: sys-service vars: - system_service_on_calendar: "{{SYS_SCHEDULE_REPAIR_DOCKER_HARD}}" - system_service_timer_enabled: true + system_service_on_calendar: "{{ SYS_SCHEDULE_REPAIR_DOCKER_HARD }}" + system_service_timer_enabled: true + system_service_tpl_on_failure: "{{ SYS_SERVICE_CLEANUP_ANONYMOUS_VOLUMES }}" diff --git a/roles/sys-service/tasks/05_service.yml b/roles/sys-service/tasks/05_service.yml index 24814e7f..ae9195b5 100644 --- a/roles/sys-service/tasks/05_service.yml +++ b/roles/sys-service/tasks/05_service.yml @@ -39,10 +39,12 @@ - name: refresh systemctl service when SYS_SERVICE_ALL_ENABLE block: - - command: /bin/true + - name: reload system daemon + command: /bin/true notify: reload system daemon - - command: /bin/true + - name: refresh systemctl service + command: /bin/true notify: refresh systemctl service when: not system_service_uses_at - when: SYS_SERVICE_ALL_ENABLED | bool + when: SYS_SERVICE_ALL_ENABLED | bool or system_force_flush | bool diff --git a/roles/sys-service/vars/main.yml b/roles/sys-service/vars/main.yml index b20f9a34..578e2f4a 100644 --- a/roles/sys-service/vars/main.yml +++ b/roles/sys-service/vars/main.yml @@ -6,15 +6,16 @@ system_service_role_dir: "{{ [ playbook_dir, 'roles', system_service_role_ system_service_script_dir: "{{ [ PATH_SYSTEMCTL_SCRIPTS, system_service_id ] | path_join }}" ## Settings +system_force_flush: false # When set to true it activates the flushing of services :) system_service_copy_files: true # When set to false file copying will be skipped system_service_timer_enabled: false # When set to true timer will be loaded system_service_state: "{{ SYS_SERVICE_DEFAULT_STATE }}" # Dynamic Loaded ( Just available when dependencies are loaded ) -system_service_script_base: "{{ system_service_script_src | basename | regex_replace('\\.j2$', '') }}" -system_service_script_type: "{{ system_service_script_base | filetype }}" -system_service_script_inter: "/bin/{{ 'bash' if system_service_script_type == 'sh' else 'python3'}}" -system_service_script_exec: "{{ system_service_script_inter }} {{ system_service_id | get_service_script_path( system_service_script_type ) }}" +system_service_script_base: "{{ system_service_script_src | basename | regex_replace('\\.j2$', '') }}" +system_service_script_type: "{{ system_service_script_base | filetype }}" +system_service_script_inter: "/bin/{{ 'bash' if system_service_script_type == 'sh' else 'python3'}}" +system_service_script_exec: "{{ system_service_script_inter }} {{ system_service_id | get_service_script_path( system_service_script_type ) }}" # Service template system_service_tpl_on_failure: "{{ SYS_SERVICE_ON_FAILURE_COMPOSE }}" diff --git a/roles/sys-svc-cln-anon-volumes/tasks/main.yml b/roles/sys-svc-cln-anon-volumes/tasks/main.yml deleted file mode 100644 index 988eb17d..00000000 --- a/roles/sys-svc-cln-anon-volumes/tasks/main.yml +++ /dev/null @@ -1,24 +0,0 @@ -- name: Check if docker is installed - ansible.builtin.stat: - path: /usr/bin/docker - register: docker_bin - -- block: - - name: "pkgmgr install" - include_role: - name: pkgmgr-install - vars: - package_name: dockreap - - - name: run dockreap with --no-confirmation - command: - cmd: "dockreap --no-confirmation" - async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}" - poll: "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}" - - - name: mark dockreap as run - set_fact: - run_once_sys_svc_cln_anon_volumes: true - when: - - run_once_sys_svc_cln_anon_volumes is not defined - - docker_bin.stat.exists diff --git a/roles/sys-svc-docker/tasks/03_cleanup.yml b/roles/sys-svc-docker/tasks/03_cleanup.yml index 78c7b1de..82b68888 100644 --- a/roles/sys-svc-docker/tasks/03_cleanup.yml +++ b/roles/sys-svc-docker/tasks/03_cleanup.yml @@ -1,6 +1,11 @@ -- name: Load role to delete anonymous volumes - include_role: - name: sys-svc-cln-anon-volumes +- block: + - name: Load role to delete anonymous volumes + include_role: + name: sys-ctl-cln-anon-volumes + vars: + system_force_flush: true + - include_tasks: utils/run_once.yml + when: run_once_sys_ctl_cln_anon_volumes is not defined - name: Prune Docker resources become: true