blob: 5df7d564f0b5c8f2f4e253b99e6d6a7d5ade931e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
- name: Load icecast vars
tags: obs-profile, wip
include_vars:
file: ../../stream/defaults/main.yml
- name: Add repo
apt_repository:
repo: ppa:obsproject/obs-studio
when: ansible_distribution == "Ubuntu"
- name: Add nodesource key
apt_key:
id: 2F59B5F99B1BE0B4
keyserver: keyserver.ubuntu.com
state: present
- name: Add nodesource repository
ansible.builtin.apt_repository:
repo: deb https://deb.nodesource.com/node_20.x nodistro main
update_cache: yes
- name: Add packages
apt:
name:
- xserver-xorg-video-dummy
- i3
- inkscape # OBS overlaying PNG is prettier than SVG
- socat
- ffmpeg
- pulseaudio
- jackd2
- kitty
- kitty-terminfo
- alsa-utils
- nodejs
- dbus-x11
- obs-studio
- mumble
- xserver-xorg-dev
- xdotool
update_cache: yes
- name: Add Firefox
apt:
name: firefox-esr
when: ansible_distribution == "Debian"
- name: Add Firefox
apt:
name: firefox-esr
when: ansible_distribution == "Ubuntu"
- name: Copy X11 config
template:
src: xorg.conf
dest: /etc/X11/xorg.conf
- name: Set up MPV and MPVC
tags: mpv
include_tasks: mpv.yml
- name: Set up track-specific things
include_tasks: track.yml
loop: "{{ emacsconf_tracks }}"
- debug:
var: emacsconf_home
- name: Add packages
apt:
name:
- tigervnc-standalone-server
- tigervnc-common
tags: vnc
- name: Allow SSH for the users
replace:
dest: /etc/ssh/sshd_config.d/emacsconf_ssh.conf
regexp: '(AllowUsers(?!.*\b{{ emacsconf_id }}-{{ item.id }}\b).*)$'
replace: \1 {{ emacsconf_id }}-{{ item.id }}
loop: "{{ emacsconf_tracks }}"
- name: Set system timezone
tags: tz
community.general.timezone:
name: "{{ emacsconf_timezone }}"
- name: Restart cron
tags: tz
ansible.builtin.service:
name: cron
state: restarted
- name: Set emacsconf_user timezone
tags: tz
lineinfile:
line: export TZ={{ emacsconf_timezone }}
dest: "/home/{{ emacsconf_user }}/.bashrc"
- name: Allow sudo from {{ emacsconf_user }} to the stream users
tags: obs-sudo
become: true
become_user: root
community.general.sudoers:
name: "{{ emacsconf_user }}-{{ emacsconf_id }}-{{ item.id }}"
user: "{{ emacsconf_user }}"
runas: "{{emacsconf_id }}-{{ item.id }}"
commands: ALL
nopassword: true
with_items:
- "{{ emacsconf_tracks }}"
- name: Allow sudo from the stream users to the {{ emacsconf_user }}
tags: obs-sudo
become: true
become_user: root
community.general.sudoers:
name: "{{ emacsconf_id }}-{{ item.id }}-{{ emacsconf_user }}"
user: "{{emacsconf_id }}-{{ item.id }}"
runas: "{{ emacsconf_user }}"
commands: ALL
nopassword: true
with_items:
- "{{ emacsconf_tracks }}"
- name: Create directories
file:
owner: "{{ emacsconf_user }}"
group: "{{ emacsconf_group }}"
path: "{{ emacsconf_asset_dir }}"
state: directory
mode: 0775
- name: Set up scripts
tags: wip, obs-scripts
template:
src: "{{ item }}"
dest: /usr/local/bin
mode: 0755
loop:
- overlay
- music
- stop-music
- play
- play-with-intro
- intro
- bbb
- pad
- handle-qa
- handle-session
- reset-state
- rebroadcast
|