--- - name: Install pipewire apt: name: - systemd-container - pipewire - pipewire-jack - pipewire-pulse - pulseaudio-utils - pulsemixer - wireplumber state: present - name: Add audio group group: name: audio system: true - name: Add {{ music_audio_user }} user user: name: "{{ music_audio_user }}" uid: "{{ music_audio_user_id }}" system: true groups: - audio - name: Enable linger for {{ music_audio_user }} copy: dest: "/var/lib/systemd/linger/{{ music_audio_user }}" content: "" - name: Enable pipewire become: true become_user: "{{ music_audio_user }}" become_method: machinectl ansible.builtin.systemd: name: pipewire state: started enabled: true scope: user - name: Set PULSE_SERVER env var for all shells copy: dest: /etc/profile.d/pulse-server.sh content: |+ # Ansible managed export PULSE_SERVER={{ music_pulse_server }} - name: Create pipewire-pulse config dir file: path: /etc/pipewire/pipewire-pulse.conf.d/ state: directory - name: Configure system socket ansible.builtin.copy: dest: /etc/pipewire/pipewire-pulse.conf.d/system-socket.conf content: |+ # Ansible managed context.exec = [ { path = "/bin/chgrp" args = "{{ music_audio_group }} {{ music_pulse_server }}" } { path = "/bin/chmod" args = "g+rwx,o-rwx {{ music_pulse_server }}" } ] pulse.properties = { server.address = [ "unix:{{ music_pulse_server }}" ] } notify: restart pipewire