Fix tasks that always report changed regardless of actual state
Several roles reported "changed" on every playbook run even when
nothing on the target had drifted, making real config drift
indistinguishable from noise:
- 7 systemd tasks across 6 roles used state:restarted, which always
issues a restart and always reports changed. Switched to
state:started plus notify-driven handlers that only restart when
the underlying unit file, script, or config actually changes.
- pi_standard_setup's boot mode, timezone, and locale tasks shelled
out to raspi-config with changed_when:true hardcoded. Boot mode now
checks systemctl get-default first; timezone/locale now use the
natively idempotent community.general.timezone/locale_gen modules.
- The pi account password task computed password_hash('sha512')
without a seed, generating a new random salt (and thus an
apparently different hash) on every run. Added a stable seed so the
hash only changes when the underlying secret does.
Also renamed a mislabeled task in pi_squeezelite_custom and fixed a
typo in pi_standard_setup while those files were already touched.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
5
roles/pi_shairport/handlers/main.yml
Normal file
5
roles/pi_shairport/handlers/main.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
- name: Restart shairport-sync
|
||||
ansible.builtin.service:
|
||||
name: shairport-sync
|
||||
state: restarted
|
||||
@@ -21,20 +21,23 @@
|
||||
ansible.builtin.script: "build-shairport-sync.sh ${shairport_sync_version}"
|
||||
args:
|
||||
creates: /usr/local/bin/shairport-sync
|
||||
notify: Restart shairport-sync
|
||||
- name: Copy config
|
||||
ansible.builtin.template:
|
||||
src: shairport-sync.conf
|
||||
dest: /etc/shairport-sync.conf
|
||||
mode: "0644"
|
||||
notify: Restart shairport-sync
|
||||
- name: Modify service file to run as root
|
||||
ansible.builtin.lineinfile:
|
||||
path: /lib/systemd/system/shairport-sync.service
|
||||
regexp: "^#?User="
|
||||
line: "User=root"
|
||||
- name: Restart shairport-sync
|
||||
notify: Restart shairport-sync
|
||||
- name: Enable shairport-sync autostart
|
||||
ansible.builtin.systemd:
|
||||
name: shairport-sync
|
||||
state: restarted
|
||||
state: started
|
||||
enabled: "yes"
|
||||
daemon_reload: "yes"
|
||||
- name: Add to sysdweb
|
||||
|
||||
Reference in New Issue
Block a user