From 14d777716b8c30905ab2c8b844b4dbf5dec26eb8 Mon Sep 17 00:00:00 2001 From: Emiliano Vavassori Date: Thu, 17 Sep 2015 17:20:42 +0200 Subject: [PATCH] Partial implementation for pulseaudio. --- roles/base/files/pulseaudio-perms.sh | 24 +++++++++++++++++++ roles/base/tasks/audio.yml | 35 ++++++++++++++++++++++++++++ roles/base/tasks/main.yml | 5 ++++ 3 files changed, 64 insertions(+) create mode 100644 roles/base/files/pulseaudio-perms.sh create mode 100644 roles/base/tasks/audio.yml diff --git a/roles/base/files/pulseaudio-perms.sh b/roles/base/files/pulseaudio-perms.sh new file mode 100644 index 0000000..bc9b31a --- /dev/null +++ b/roles/base/files/pulseaudio-perms.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +domaingroup="domain users" +localgroups="pulse pulse-access" + +baseusers="bglug" +domainusers=$(getent group '${domaingroup}' | awk 'BEGIN { FS = ":" }; { print $4 }' | sed -e 's/,/ /') + +users="${baseusers} ${domainusers}" + +for group in "${localgroups}"; do + actualusers=$(getent group '${group}' | awk 'BEGIN { FS = ":" }; { print $4 }' | sed -e 's/,/ /g') + + # Removing users not in the group + for user in "${actualusers}"; do + [[ "${users}" =~ "${user}" ]] || gpasswd -d "${user}" "${group}" + done + + # Adding users to group + for user in "${users}"; do + [[ "${actualusers}" =~ "${user}" ]] || gpasswd -a "${user}" "${group}" + done +done + diff --git a/roles/base/tasks/audio.yml b/roles/base/tasks/audio.yml new file mode 100644 index 0000000..5701b50 --- /dev/null +++ b/roles/base/tasks/audio.yml @@ -0,0 +1,35 @@ +--- +# Manages reactivation of pulseaudio as system daemon + +- name: "Allowing pulseaudio to run at startup" + lineinfile: + regexp: '^#start on runlevel' + line: 'start on runlevel [2345]' + dest: /etc/init/pulseaudio.conf + state: present + +- name: "Activating pulseaudio as system process" + shell: 'status pulseaudio | grep stop && start pulseaudio' + sudo: yes + +- name: "Configuring client options" + lineinfile: + line: '{{ item }}' + dest: /etc/pulse/client.conf + state: present + with_items: + - 'default-server = /var/run/pulse/native' + - 'autospawn = no' + +- name: Disabling pulseaudio startup on lightdm + shell: chmod -x /usr/bin/start-pulseaudio-x11 + sudo: yes + +# Need to manage additions to pulse and pulse-access groups +- name: Copying script to manage users in pulse and pulse-access + copy: + src: pulseaudio-perms.sh + dest: /var/lib/{{ domainfull }}/bin/pulseaudio-perms.sh + mode: 0755 + owner: root + group: root diff --git a/roles/base/tasks/main.yml b/roles/base/tasks/main.yml index 860a4a2..266364e 100644 --- a/roles/base/tasks/main.yml +++ b/roles/base/tasks/main.yml @@ -30,6 +30,11 @@ - pkgs - packages +- include: audio.yml + tags: + - base + - audio + - include: system.yml tags: - base