mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-11-25 22:21:04 +01:00
Implemented defrost timer
This commit is contained in:
parent
c0ab0c42b4
commit
a0f7ba5015
@ -1,15 +1,18 @@
|
|||||||
# Server Tact Variables
|
# Server Tact Variables
|
||||||
|
|
||||||
|
## Ours in which the server is 100% working. Rest of the time is reserved for maintanance
|
||||||
|
hours_server_awake: "{{ range(9, 24) | list + range(0, 3) | list }}"
|
||||||
|
|
||||||
## Random delay for systemd timers to avoid peak loads.
|
## Random delay for systemd timers to avoid peak loads.
|
||||||
randomized_delay_sec: "15min"
|
randomized_delay_sec: "5min"
|
||||||
|
|
||||||
## Schedule for Health Checks
|
## Schedule for Health Checks
|
||||||
on_calendar_health_btrfs: "*-*-* 00:00:00"
|
on_calendar_health_btrfs: "*-*-* 00:00:00"
|
||||||
on_calendar_health_journalctl: "*-*-* 00:00:00"
|
on_calendar_health_journalctl: "*-*-* 00:00:00"
|
||||||
on_calendar_health_disc_space: "*-*-* 06,12,18,00:00:00"
|
on_calendar_health_disc_space: "*-*-* 06,12,18,00:00:00"
|
||||||
on_calendar_health_docker_container: "*-*-* 09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,00,01,02:00:00"
|
on_calendar_health_docker_container: "*-*-* {{ hours_server_awake | join(',') }}:00:00"
|
||||||
on_calendar_health_docker_volumes: "*-*-* 09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,00,01,02:15:00"
|
on_calendar_health_docker_volumes: "*-*-* {{ hours_server_awake | join(',') }}:15:00"
|
||||||
on_calendar_health_nginx: "*-*-* 09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,00,01,02:45:00"
|
on_calendar_health_nginx: "*-*-* {{ hours_server_awake | join(',') }}:45:00"
|
||||||
|
|
||||||
## Schedule for Cleanup Tasks
|
## Schedule for Cleanup Tasks
|
||||||
on_calendar_cleanup_backups: "*-*-* 06,12,18,00:30:00"
|
on_calendar_cleanup_backups: "*-*-* 06,12,18,00:30:00"
|
||||||
@ -20,7 +23,8 @@ on_calendar_backup_docker_to_local: "*-*-* 03:30:00"
|
|||||||
on_calendar_backup_remote_to_local: "*-*-* 21:30:00"
|
on_calendar_backup_remote_to_local: "*-*-* 21:30:00"
|
||||||
|
|
||||||
## Schedule for Maintenance Tasks
|
## Schedule for Maintenance Tasks
|
||||||
on_calendar_heal_docker: "*-*-* 09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,00,01:30:00"
|
on_calendar_heal_docker: "*-*-* {{ hours_server_awake | join(',') }}:30:00"
|
||||||
|
on_calendar_defrost: "*-*-* 00:00:00"
|
||||||
on_calendar_renew_lets_encrypt_certificates: "*-*-* 12,00:30:00"
|
on_calendar_renew_lets_encrypt_certificates: "*-*-* 12,00:30:00"
|
||||||
on_calendar_deploy_mailu_certificates: "*-*-* 13,01:30:00"
|
on_calendar_deploy_mailu_certificates: "*-*-* 13,01:30:00"
|
||||||
on_calendar_msi_keyboard_color: "*-*-* *:*:00"
|
on_calendar_msi_keyboard_color: "*-*-* *:*:00"
|
||||||
|
@ -51,7 +51,9 @@ def stop_timer(service):
|
|||||||
"""
|
"""
|
||||||
Stop and disable a systemd timer for a service if it exists.
|
Stop and disable a systemd timer for a service if it exists.
|
||||||
"""
|
"""
|
||||||
if service_file_exists(service, "timer"):
|
if service == "system-maintenance-service-defrost":
|
||||||
|
print(f"Ignore: {service}")
|
||||||
|
elif service_file_exists(service, "timer"):
|
||||||
timer_name = f"{service}.timer"
|
timer_name = f"{service}.timer"
|
||||||
subprocess.run(['systemctl', 'stop', timer_name])
|
subprocess.run(['systemctl', 'stop', timer_name])
|
||||||
subprocess.run(['systemctl', 'disable', timer_name])
|
subprocess.run(['systemctl', 'disable', timer_name])
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
- name: "restart system-maintenance-service-defrost.timer"
|
||||||
|
systemd:
|
||||||
|
name: system-maintenance-service-defrost.timer
|
||||||
|
state: restarted
|
||||||
|
enabled: yes
|
||||||
|
daemon_reload: yes
|
@ -21,3 +21,12 @@
|
|||||||
- name: "set variable to prevent loading when action status didn't change"
|
- name: "set variable to prevent loading when action status didn't change"
|
||||||
set_fact:
|
set_fact:
|
||||||
maintenance_service_freeze_action_last: "{{system_maintenance_service_freeze_action}}"
|
maintenance_service_freeze_action_last: "{{system_maintenance_service_freeze_action}}"
|
||||||
|
|
||||||
|
- name: create system-maintenance-service-defrost.timer
|
||||||
|
template:
|
||||||
|
src: system-maintenance-service-defrost.timer.j2
|
||||||
|
dest: "/etc/systemd/system/system-maintenance-service-defrost.timer"
|
||||||
|
register: system_maintenance_service_defrost_timer
|
||||||
|
changed_when: system_maintenance_service_defrost_timer.changed or activate_all_timers | bool
|
||||||
|
notify: restart system-maintenance-service-defrost.timer
|
||||||
|
when: run_once_system_maintenance_service_freeze is not defined
|
@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=starts system-maintenance-service-defrost.service
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnCalendar={{on_calendar_defrost}}
|
||||||
|
RandomizedDelaySec={{randomized_delay_sec}}
|
||||||
|
Persistent=false
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
@ -4,4 +4,5 @@ OnFailure=systemd-notifier@%n.service
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=/bin/sh -c '/usr/bin/python {{ path_system_maintenance_service_freezer_script }} {{item}} {{ system_maintenance_services | join(",") }}'
|
ExecPreStart=/bin/sh -c '/usr/bin/python {{ path_system_maintenance_service_freezer_script }} {{item}} "{{ system_maintenance_services + [item] }}"'
|
||||||
|
ExecStart=/bin/sh -c '/usr/bin/python {{ path_system_maintenance_service_freezer_script }} {{item}} "{{ system_maintenance_services }}"'
|
Loading…
Reference in New Issue
Block a user