blob: b9dcbeb09c5f68df158916531a94cb2d3c7f9efa (
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
134
135
136
|
---
- name: create jitsi-meet scripts subdirectories
loop:
- jicofo
- prosody
- web
- jvb
file:
path: "{{ jitsi_meet_base_path }}/{{ jitsi_meet_inst_name }}/scripts/{{ item }}"
state: directory
- name: generate stream-ui specific cont-init scripts
when: jitsi_meet_streamui is defined
block:
- name: generate stream-ui specific cont-init scripts for prosody
copy:
content: |
#!/usr/bin/with-contenv bash
cat << EOF > /config/conf.d/stream-ui.cfg.lua
VirtualHost "stream-ui.meet.jitsi"
modules_enabled = {
"ping";
}
authentication = "internal_hashed"
EOF
prosodyctl --config "/config/prosody.cfg.lua" register display stream-ui.meet.jitsi "{{ jitsi_meet_secrets.streamuidisplay_auth_password }}"
dest: "{{ jitsi_meet_base_path }}/{{ jitsi_meet_inst_name }}/scripts/prosody/streamui.sh"
mode: 0750
- name: generate stream-ui specific cont-init scripts for web
copy:
content: |
#!/usr/bin/with-contenv bash
cat << EOF >> /config/config.js
// Hide Stream-UI Displays
config.hiddenDomain = 'stream-ui.meet.jitsi';
EOF
dest: "{{ jitsi_meet_base_path }}/{{ jitsi_meet_inst_name }}/scripts/web/streamui.sh"
mode: 0755
- name: generate generic prosody cont-init script
copy:
content: |
#!/usr/bin/with-contenv bash
sed -e 's#^\(component_interface\s*=\)#-- \1#g' -i /config/prosody.cfg.lua
{% if jitsi_meet_auth is defined %}
echo "authentication enabled:"
{% for username, password in jitsi_meet_auth.users.items() %}
echo " * registering user: {{ username }}"
prosodyctl --config "/config/prosody.cfg.lua" register "{{ username }}" $XMPP_DOMAIN "{{ password }}"
{% endfor %}
{% endif %}
dest: "{{ jitsi_meet_base_path }}/{{ jitsi_meet_inst_name }}/scripts/prosody/cont-init.sh"
mode: 0750
- name: configure base pod config hash items
set_fact:
kubernetes_standalone_pod_config_hash_items_base:
- path: "{{ jitsi_meet_base_path }}/{{ jitsi_meet_inst_name }}/scripts/prosody/cont-init.sh"
properties:
- checksum
kubernetes_standalone_pod_config_hash_items_streamui: []
- name: configure stream-ui pod config hash items
when: jitsi_meet_streamui is defined
set_fact:
kubernetes_standalone_pod_config_hash_items_streamui:
- path: "{{ jitsi_meet_base_path }}/{{ jitsi_meet_inst_name }}/scripts/prosody/streamui.sh"
properties:
- checksum
- path: "{{ jitsi_meet_base_path }}/{{ jitsi_meet_inst_name }}/scripts/prosody/streamui.sh"
properties:
- checksum
- name: install pod manifest
vars:
kubernetes_standalone_pod:
name: "jitsi-meet-{{ jitsi_meet_inst_name }}"
spec: "{{ lookup('template', 'pod-spec.yml.j2') }}"
mode: "0600"
config_hash_items: "{{ kubernetes_standalone_pod_config_hash_items_base + kubernetes_standalone_pod_config_hash_items_streamui }}"
include_role:
name: kubernetes/standalone/pod
- name: configure base http proxy locations
set_fact:
nginx_vhost_locations_base:
'/':
proxy_pass: "http://127.0.0.1:{{ jitsi_meet_http_port }}"
extra_directives: |-
client_max_body_size 0;
nginx_vhost_locations_streamui: {}
- name: configure stream-ui http proxy locations
when: jitsi_meet_streamui is defined
block:
- name: generate basic auth password file for stream-ui
when: "'http_auth' in jitsi_meet_streamui"
vars:
nginx_auth_basic_filename: "jitsi-meet-{{ jitsi_meet_inst_name }}-streamui"
nginx_auth_basic_users: "{{ jitsi_meet_streamui.http_auth }}"
include_role:
name: nginx/auth/basic
- name: set stream-ui vhost config with authentication
when: "'http_auth' in jitsi_meet_streamui"
set_fact:
nginx_vhost_locations_streamui:
'/stream-ui/':
proxy_pass: "http://127.0.0.1:{{ jitsi_meet_streamui.http_port }}/"
extra_directives: |-
auth_basic "Jitsi Stream-UI";
auth_basic_user_file /etc/nginx/auth/jitsi-meet-{{ jitsi_meet_inst_name }}-streamui.htpasswd;
- name: set stream-ui vhost config without authentication
when: "'http_auth' not in jitsi_meet_streamui"
set_fact:
nginx_vhost_locations_streamui:
'/stream-ui/':
proxy_pass: "http://127.0.0.1:{{ jitsi_meet_streamui.http_port }}/"
- name: configure nginx vhost
vars:
nginx_vhost:
name: "jitsi-meet-{{ jitsi_meet_inst_name }}"
template: generic-proxy-no-buffering-with-acme
acme: true
hostnames:
- "{{ jitsi_meet_hostname }}"
locations: "{{ nginx_vhost_locations_base | combine(nginx_vhost_locations_streamui) }}"
include_role:
name: nginx/vhost
|