--- # The mirror image of present.yml. Worth having as a real code path rather than a # one-off ssh session: musicdolphin had LMS running because some earlier provisioning # put it there, no playbook has installed it since, and nothing on the network used # it - every squeezelite in the fleet points at `pi_squeezelite_squeezeserver` # (192.168.178.80, the server), not at the pi it happens to be running on. On a 2 GB Pi # that is also driving a kiosk browser, a stray Perl daemon holding ~30 MB resident and # ~47 MB of swap is worth reclaiming. - name: Check whether the Logitech Media Server unit is there at all ansible.builtin.stat: path: /lib/systemd/system/logitechmediaserver.service register: pi_squeezeserver_unit - name: Stop and disable the Logitech Media Server # Before the package goes, so systemd is told rather than left holding a unit file # that vanishes underneath it. ansible.builtin.systemd: name: logitechmediaserver state: stopped enabled: false when: pi_squeezeserver_unit.stat.exists - name: Purge the Logitech Media Server package ansible.builtin.apt: name: logitechmediaserver state: absent purge: true autoremove: true - name: Drop the Logitech Media Server from sysdweb # Same marker pi_sysdweb writes, so this removes exactly the block that role added. ansible.builtin.blockinfile: path: /etc/sysdweb.conf marker: "# {mark} ansible managed for logitechmediaserver" state: absent notify: Restart sysdweb after dropping the LMS entry - name: Undo the port 80 -> 9000 redirect the install added ansible.builtin.iptables: table: nat chain: PREROUTING in_interface: eth0 protocol: tcp match: tcp destination_port: "80" jump: REDIRECT to_ports: "9000" comment: Redirect web traffic to port 9000 state: absent - name: Remove the server's database and logs # apt purge takes /usr/share/squeezeboxserver (118 MB) with it but leaves these. They # are a scan cache and a log of a server nobody talked to. ansible.builtin.file: path: "{{ item }}" state: absent loop: - /var/lib/squeezeboxserver - /var/log/squeezeboxserver