Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
O
Online-Werkzeuge
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Peter Gerwinski
Online-Werkzeuge
Commits
cfe11d5f
Commit
cfe11d5f
authored
5 years ago
by
Peter Gerwinski
Browse files
Options
Downloads
Patches
Plain Diff
online-werkzeuge-admin: noVNC
parent
599a9834
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
online-werkzeuge-admin.pdf
+0
-0
0 additions, 0 deletions
online-werkzeuge-admin.pdf
online-werkzeuge-admin.tex
+122
-85
122 additions, 85 deletions
online-werkzeuge-admin.tex
with
122 additions
and
85 deletions
online-werkzeuge-admin.pdf
+
0
−
0
View file @
cfe11d5f
No preview for this file type
This diff is collapsed.
Click to expand it.
online-werkzeuge-admin.tex
+
122
−
85
View file @
cfe11d5f
...
...
@@ -28,6 +28,13 @@
\newcommand
{
\sep
}{
~
$
\cdot
$
~
}
\newcommand
{
\mylicense
}{
CC-by-sa (Version 3.0) oder GNU GPL (Version 3 oder höher)
}
\lstset
{
basicstyle=
\color
{
blendedblue
}
,
language=bash,
captionpos=b,
gobble=4,
xleftmargin=1em,
columns=fullflexible,
moredelim=**[is][
\color
{
darkred
}
]
{
¡
}{
¿
}}
\lstdefinestyle
{
terminal
}{
basicstyle=
\small\ttfamily\color
{
darkgreen
}
,
language=
{}
,
columns=fixed,
...
...
@@ -467,7 +474,7 @@
(
Audio
-
, Video
-
und Screensharing
-
Streams
)
notwendig und wird von
\term
{
OpenMeetings
}
verwendet. Damit Medienströme weitergeleitet werden können,
obwohl sich sowohl
\term
{
OpenMeetings
}
als auch i.
\,
d.
\,
R.
\
die Teilnehmenden hinter
einem NAT befinden, wird dieser so konfiguriert, da
ss
er Zugriff auf
einem NAT befinden, wird dieser so konfiguriert, da
ß
er Zugriff auf
einen TURN
-
Server besitzt.
Dies geschieht durch Ergänzen der Zeile
...
...
@@ -513,17 +520,16 @@
erfolgt über die Web-Oberfläche.
Da wir keine einfache Möglichkeit gefunden haben,
die Lehrenden jeweils automatisch zu Moderatoren
zu mach
en,
w
u
rden diese jeweils über das
unten
wiedergegebene Shell-Skript
die Lehrenden jeweils automatisch zu Moderatoren
ernennen zu lass
en,
w
e
rden diese jeweils über das
hier
wiedergegebene Shell-Skript
\file
{
/usr/local/sbin/give
\_
rights
\_
to
\_
all
\_
lecture
\_
rooms
}
zu Moderatoren jeden Raumes ernannt.
Nach Anwendung ist in der Ubuntu-VM einmalig
\lstinline
[style=cmd]
{
/etc/init.d/tomcat3 restart
}
auszuführen.
zu Moderatoren jeden Raumes ernannt:
\begin{lstlisting}
[style=terminal]
#!/bin/sh
(for user in ¡2 5 6 7 8 12 30 31 32 33 34 35¿; do
for room in ¡
$
(
seq
21
32
)
¿; do
echo "insert into room
_
moderator
(
roomId, user
_
id
)
values
(
$
room,
$
user
)
;"
echo "insert into room
_
moderator"
\
"
(
roomId, user
_
id
)
values
(
$
room,
$
user
)
;"
done
done
)
| mysql
--
database
=
open
503
-
B
\end
{
lstlisting
}
...
...
@@ -531,20 +537,26 @@
in der SQL
-
Datenbank von
\term
{
OpenMeetings
\/
}
und müssen Ihrer Installation entsprechend angepaßt werden.
\section
{
NoVNC
}
Nach Anwendung ist in der Ubuntu
-
VM einmalig
\lstinline
[
style
=
cmd
]
{
/
etc
/
init.d
/
tomcat
3
restart
}
auszuführen.
\iffalse
\section
{
NoVNC
}
Installation mittels 'apt install novnc'.
Wir installieren zunächst
\term
{
noVNC
\/
}
mittels
\lstinline
[
style
=
cmd
]
{
apt install novnc
}
.
##
systemd
\subsection
{
systemd
}
Um mehrere Räume bereitstellen zu können, wird ein entsprechendes Skript
für systemd geschrieben. Dies lässt NoVNC dauerhaft laufen, alternativ
wäre auch eine Aktivierung beim Kontaktaufbau zum entsprechenden
TCP
-
Socket denkbar.
Um mehrere Räume bereitstellen zu können,
wird ein entsprechendes Skript für
\file
{
systemd
}
geschrieben.
Mit dieser Methode läuft
\term
{
noVNC
\/
}
dauerhaft im Hintergrund.
(
Alternativ wäre auch eine Aktivierung
beim Kontaktaufbau zum entsprechenden TCP
-
Socket denkbar.
)
root@main
-
0
:~# cat
/
etc
/
systemd
/
system
/
novnc@.service
Das
\file
{
systemd
}
-
Skript wird auf dem Rechner
\file
{
main
-
0
}
,
auf dem
\term
{
noVNC
\/
}
läuft,
in der Datei
\file
{
/
etc
/
systemd
/
system
/
novnc@.service
}
abgelegt:
\begin
{
lstlisting
}
[
style
=
terminal
]
[
Unit
]
Description
=
start noVNC service
%i
After
=
syslog.target network.target
...
...
@@ -556,25 +568,42 @@ ExecStart = /usr/local/sbin/hsbo_novnc %i
[
Install
]
WantedBy
=
multi
-
user.target
root@main
-
0
:~# cat
/
usr
/
local
/
sbin
/
hsbo
_
novnc
\end
{
lstlisting
}
Das
\file
{
systemd
}
-
Skript ruft ein Shell
-
Skript
\file
{
hsbo
\_
novnc
}
auf,
das sich im Verzeichnis
\file
{
/
usr
/
local
/
sbin
/
hsbo
\_
novnc
}
befindet
und das eigentliche Launch
-
Skript von
\term
{
noVNC
\/
}
aufruft:
\begin
{
lstlisting
}
#
!/
bin
/
bash
i
=
$
1; shift
exec /usr/share/novnc/utils/launch.sh --listen
$
((
6080
+
$
i)) --vnc localhost:
$
((
5900
+
$
i))
$
*
Wir wollen
13
Instanzen, diese werden mittels
root@main
-
0
:~# for i in
$
(seq 0 12); do systemctl start novnc@
$
i; systemctl enable novnc@
$
i;done
gestartet und dauerhaft aktiviert (sodass sie nach einem Reboot wieder zur Verfügung stehen).
exec /usr/share/novnc/utils/launch.sh --listen
$
((
6080
+
$
i))
\
--vnc localhost:
$
((
5900
+
$
i))
$
*
\end
{
lstlisting
}
In unserem Beispiel starten wir
13
Instanzen von
\term
{
noVNC
}
,
durchnumeriert von
0
bis
12
.
Die Nummern sind gleichzeitig die Nummern der VNC
-
Server,
auf die
\term
{
noVNC
\/
}
als VNC
-
Client zugreift.
## Apache
Mit dem Shell
-
Befehl
\begin
{
lstlisting
}
[
style
=
cmd
]
for i in
$
(seq 0 12); do
\
systemctl start novnc@
$
i;
\
systemctl enable novnc@
$
i;
\
done
\end{lstlisting}
starten wir diese 13 Instanzen und aktivieren sie dauerhaft,
so daß sie nach einem Reboot wieder zur Verfügung stehen.
NoVNC soll hinter einem Apache-Proxy bleiben. Zur Kommunikation werden WSS (secure Websockets) benötigt.
Daher müssen mittels 'a2enmod proxy
_
wstunnel proxy
_
http' die entsprechenden Module aktiviert werden.
\subsection
{
Apache
}
Die entsprechende Apache-Konfiguration sieht so aus, die Verbindungen sollen grundsätzlich verschlüsselt passieren:
\term
{
noVNC
\/
}
soll hinter einem Apache-Proxy bleiben.
Zur Kommunikation werden WSS (secure Websockets) benötigt.
Daher müssen mittels
\lstinline
[style=cmd]
{
a2enmod proxy
_
wstunnel proxy
_
http
}
die entsprechenden Module aktiviert werden.
root@main-0:~# cat /etc/apache2/sites-enabled/novnc.cvh-server.de.conf
Die entsprechende Apache-Konfiguration erfolgt in der Konfigurationsdatei
\file
{
/etc/apache2/sites-enabled/novnc.cvh-server.de.conf
}
:
\begin{lstlisting}
[style=terminal]
<VirtualHost
_
default
_
:80>
ServerAdmin webmaster@cvh-server.de
ServerName novnc.cvh-server.de
...
...
@@ -585,7 +614,6 @@ root@main-0:~# cat /etc/apache2/sites-enabled/novnc.cvh-server.de.conf
ErrorLog
${
APACHE
_
LOG
_
DIR
}
/
novnc.cvh
-
server.de
-
error.log
LogLevel warn
CustomLog
${
APACHE
_
LOG
_
DIR
}
/novnc.cvh-server.de-access.log combined
</VirtualHost>
<VirtualHost
_
default
_
:443
_
default
_
:8443>
...
...
@@ -601,8 +629,9 @@ root@main-0:~# cat /etc/apache2/sites-enabled/novnc.cvh-server.de.conf
ProxyPass /websock/1/ ws://localhost:6081/websockify
ProxyPassReverse /websock/1/ ws://localhost:6081/websockify
…
\end{lstlisting}
[
\,\dots
]
\begin{lstlisting}
[style=terminal]
ProxyPass /websock/12/ ws://localhost:6092/websockify
ProxyPassReverse /websock/12/ ws://localhost:6092/websockify
...
...
@@ -614,18 +643,26 @@ root@main-0:~# cat /etc/apache2/sites-enabled/novnc.cvh-server.de.conf
CustomLog
${
APACHE
_
LOG
_
DIR
}
/novnc.cvh-server.de-access.log combined
SSLEngine on
</VirtualHost>
\end{lstlisting}
Dadurch wird sichergestellt, daß grundsätzlich alle Verbindungen
verschlüsselt werden.
Auf die einzelnen Räume kann jetzt über URLs der Form
https://novnc.cvh-server.de/vnc.html?host=novnc.cvh-server.de
&
port=443
&
path=websock/0/
&
reconnect=1
&
resize=scale
https://novnc.cvh-server.de/vnc.html?host=novnc.cvh-server.de
&
port=443
&
path=websock/1/
&
reconnect=1
&
resize=scale
…
https://novnc.cvh-server.de/vnc.html?host=novnc.cvh-server.de
&
port=443
&
path=websock/12/
&
reconnect=1
&
resize=scale
Auf die einzelnen VNC-Kanäle kann jetzt über URLs der Form
\begin{lstlisting}
¡¿https://novnc.¡
$
DOMAIN¿
/
vnc.html?host
=
novnc.¡
$
DOMAIN¿
&
port=443
&
path=websock/¡
$
CHANNEL¿
/
&
reconnect
=
1
&
resize
=
scale
\end
{
lstlisting
}
zugegriffen werden.
(
\lstinline
[
style
=
cmd
]
{$
CHANNEL
}
steht für die Nummer des VNC-Kanals.
Der Umbruch in der URL geschieht hier nur aus Platzgründen
und darf natürlich nicht in dieser Form übernommen werden.)
\fi
Die Optionen
\lstinline
{&
reconnect=1
&
resize=scale
}
bewirken eine Vorkonfiguration des
\term
{
noVNC
\/
}
-Clients,
daß er sich bei Verbindungsabbruch automatisch wiederverbinden soll
und daß er das VNC-Bild auf die Größe des Browser-Fensters skalieren soll.
Diese Konfiguration läßt sich während der Benutzung von
\term
{
noVNC
\/
}
ändern (Icon: Zahnrad-Symbol).
\emph
{
(Fortsetzung folgt.)
}
...
...
@@ -641,7 +678,7 @@ zugegriffen werden.
\setlength
{
\leftskip
}{
3cm
}
Stand: 1
2
.
\
April 2020
Stand: 1
3
.
\
April 2020
Copyright
\copyright\
2020
\quad
Peter Gerwinski
\\
Lizenz:
\mylicense
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment