aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2023-09-23 00:46:31 +0200
committerEgor Tensin <Egor.Tensin@gmail.com>2023-09-23 10:15:05 +0200
commitd51005bf38caf3b8c5a3334527b4ab34c8784a55 (patch)
treec2e48f5c6f3b07c178ba9e630e2fe4388792dfa2
parentdocker: avoid duplicate service restarts (diff)
downloadinfra-ansible-d51005bf38caf3b8c5a3334527b4ab34c8784a55.tar.gz
infra-ansible-d51005bf38caf3b8c5a3334527b4ab34c8784a55.zip
linux_status: get rid of unnecessary service restarts, etc.
-rw-r--r--roles/linux_status/defaults/main.yml2
-rw-r--r--roles/linux_status/handlers/main.yml15
-rw-r--r--roles/linux_status/tasks/main.yml34
-rw-r--r--roles/linux_status/tasks/power_management.yml30
4 files changed, 53 insertions, 28 deletions
diff --git a/roles/linux_status/defaults/main.yml b/roles/linux_status/defaults/main.yml
index 75b3e80..dd7dadc 100644
--- a/roles/linux_status/defaults/main.yml
+++ b/roles/linux_status/defaults/main.yml
@@ -1 +1 @@
-linux_status_disable_power_management: false
+linux_status_enable_power_management: true
diff --git a/roles/linux_status/handlers/main.yml b/roles/linux_status/handlers/main.yml
index 0ea529f..9c8b019 100644
--- a/roles/linux_status/handlers/main.yml
+++ b/roles/linux_status/handlers/main.yml
@@ -1,7 +1,18 @@
-- name: Restart linux-status
+- name: Collect service facts
+ ansible.builtin.service_facts:
+ listen: linux_status_configured
+
+- name: Reload systemd daemon
become: true
ansible.builtin.systemd_service:
daemon_reload: true
+ listen: linux_status_configured
+
+- name: Restart linux-status service
+ become: true
+ when: |
+ 'linux-status.service' in ansible_facts.services and ansible_facts.services['linux-status.service'].state == 'running'
+ ansible.builtin.systemd_service:
name: linux-status
state: restarted
- listen: linux_status_restart
+ listen: linux_status_configured
diff --git a/roles/linux_status/tasks/main.yml b/roles/linux_status/tasks/main.yml
index 951c838..f3344ff 100644
--- a/roles/linux_status/tasks/main.yml
+++ b/roles/linux_status/tasks/main.yml
@@ -1,31 +1,15 @@
-- name: Disable power management
- when: linux_status_disable_power_management
- become: true
- block:
- - name: Create override directory
- ansible.builtin.file:
- path: /etc/systemd/system/linux-status.service.d
- state: directory
- owner: root
- group: root
- mode: '755'
-
- - name: Create override file
- ansible.builtin.template:
- src: disable_power_management.conf.j2
- dest: /etc/systemd/system/linux-status.service.d/99-disable_power_management.conf
- owner: root
- group: root
- mode: '644'
- notify: linux_status_restart
+- name: Configure power management
+ ansible.builtin.include_tasks: power_management.yml
- name: Install linux-status
become: true
- ansible.builtin.apt:
+ ansible.builtin.package:
name: linux-status
state: present
- policy_rc_d: 101
- notify: linux_status_restart
-- name: Restart systemd service if necessary
- ansible.builtin.meta: flush_handlers
+- name: Enable & start linux-status.service
+ become: true
+ ansible.builtin.systemd_service:
+ name: linux-status.service
+ enabled: true
+ state: started
diff --git a/roles/linux_status/tasks/power_management.yml b/roles/linux_status/tasks/power_management.yml
new file mode 100644
index 0000000..2288d24
--- /dev/null
+++ b/roles/linux_status/tasks/power_management.yml
@@ -0,0 +1,30 @@
+- name: Create override directory
+ become: true
+ ansible.builtin.file:
+ path: /etc/systemd/system/linux-status.service.d
+ state: directory
+ owner: root
+ group: root
+ mode: '755'
+
+- name: Enable power management
+ become: true
+ ansible.builtin.file:
+ path: /etc/systemd/system/linux-status.service.d/99-disable_power_management.conf
+ state: absent
+ when: linux_status_enable_power_management
+ notify: linux_status_configured
+
+- name: Disable power management
+ become: true
+ ansible.builtin.template:
+ src: disable_power_management.conf.j2
+ dest: /etc/systemd/system/linux-status.service.d/99-disable_power_management.conf
+ owner: root
+ group: root
+ mode: '644'
+ when: not linux_status_enable_power_management
+ notify: linux_status_configured
+
+- name: Restart systemd service if necessary
+ ansible.builtin.meta: flush_handlers