mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-03 19:58:14 +00:00 
			
		
		
		
	Refactor systemd handling
- sys-ctl-rpr-btrfs-balancer: suppress service flush for btrfs balancer (too expensive to run each play) - sys-daemon: replace raw systemctl calls with ansible.builtin.systemd (daemon_reload, daemon_reexec) - sys-service: split handler into 'Enable systemctl service' and 'Set systemctl service state', add become, async/poll, suppress flush guard Conversation: https://chatgpt.com/share/68c2f7a6-6fe4-800f-9d79-3e3b0ab4a563
This commit is contained in:
		@@ -12,6 +12,7 @@
 | 
				
			|||||||
- include_role:
 | 
					- include_role:
 | 
				
			||||||
    name: sys-service
 | 
					    name: sys-service
 | 
				
			||||||
  vars:
 | 
					  vars:
 | 
				
			||||||
 | 
					    system_service_suppress_flush:  true # It takes a super long time - Better wait for failure of timed service instead of executing it on every play
 | 
				
			||||||
    system_service_copy_files:      false
 | 
					    system_service_copy_files:      false
 | 
				
			||||||
    system_service_on_calendar:     "{{ SYS_SCHEDULE_REPAIR_BTRFS_AUTO_BALANCER }}"
 | 
					    system_service_on_calendar:     "{{ SYS_SCHEDULE_REPAIR_BTRFS_AUTO_BALANCER }}"
 | 
				
			||||||
    system_service_timer_enabled:   true
 | 
					    system_service_timer_enabled:   true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,14 +35,19 @@
 | 
				
			|||||||
    - reexec systemd manager
 | 
					    - reexec systemd manager
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: reload system daemon
 | 
					- name: reload system daemon
 | 
				
			||||||
  command: systemctl daemon-reload
 | 
					  ansible.builtin.systemd:
 | 
				
			||||||
 | 
					    daemon_reload: true
 | 
				
			||||||
  become: true
 | 
					  become: true
 | 
				
			||||||
  listen: reload system daemon
 | 
					  listen:
 | 
				
			||||||
 | 
					    - reload system daemon
 | 
				
			||||||
 | 
					    - refresh systemctl service
 | 
				
			||||||
  async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
 | 
					  async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
 | 
				
			||||||
  poll:  "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}"
 | 
					  poll:  "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: reexec systemd manager
 | 
					- name: reexec systemd manager
 | 
				
			||||||
  command: systemctl daemon-reexec
 | 
					  # Just execute this during reset, it has potential dangerous side effects
 | 
				
			||||||
 | 
					  ansible.builtin.systemd:
 | 
				
			||||||
 | 
					    daemon_reexec: true
 | 
				
			||||||
  become: true
 | 
					  become: true
 | 
				
			||||||
  listen: reexec systemd manager
 | 
					  listen: reexec systemd manager
 | 
				
			||||||
  async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
 | 
					  async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,19 @@
 | 
				
			|||||||
- name: "refresh systemctl service"
 | 
					- name: "Enable systemctl service"
 | 
				
			||||||
  systemd:
 | 
					  systemd:
 | 
				
			||||||
    name: "{{ system_service_id | get_service_name(SOFTWARE_NAME) }}"
 | 
					    name: "{{ system_service_id | get_service_name(SOFTWARE_NAME) }}"
 | 
				
			||||||
    daemon_reload: yes
 | 
					 | 
				
			||||||
    enabled: yes
 | 
					    enabled: yes
 | 
				
			||||||
 | 
					    daemon_reload: true
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					  async:  "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
 | 
				
			||||||
 | 
					  poll:   "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}"
 | 
				
			||||||
 | 
					  listen: refresh systemctl service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: "Set systemctl service state"
 | 
				
			||||||
 | 
					  systemd:
 | 
				
			||||||
 | 
					    name: "{{ system_service_id | get_service_name(SOFTWARE_NAME) }}"
 | 
				
			||||||
    state: "{{ system_service_state }}"
 | 
					    state: "{{ system_service_state }}"
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
  async:  "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
 | 
					  async:  "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
 | 
				
			||||||
  poll:   "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}"
 | 
					  poll:   "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}"
 | 
				
			||||||
  when:   not (system_service_suppress_flush | bool)
 | 
					  when:   not (system_service_suppress_flush | bool)
 | 
				
			||||||
 | 
					  listen: refresh systemctl service
 | 
				
			||||||
		Reference in New Issue
	
	Block a user