Zuletzt geändert von Clemens Dörfler am 2023/05/15 13:16

Zeige letzte Bearbeiter
1 Mit den nachfolgenden Schritten können Sie eine neue Nextcloud Instanz auf einem Server mit dem Datenbank-Container pgsql13 installieren.
2
3
4 **1.** Stellen Sie sicher dass ihr LogoDIDACT Server mindestens die Puppet-Version 1.4.0 besitzt. Dies ist für eine Aktivierung des Datenbank-Containers {{code language="bash"}}pgsql13{{/code}} notwendig.
5
6
7 **2.** Aktivieren Sie die Container {{code language="bash"}}nextcloud-g1{{/code}} ,  {{code language="bash"}}pgsql13{{/code}} und falls gewünscht den {{code language="bash"}}collabora-g1{{/code}} Container in der guest.conf im Puppeteer Container:
8
9 {{code language="bash"}}
10 root@ldhost:~ # lxc-ssh -n puppeteer
11 {{/code}}
12
13 {{code language="bash"}}
14 root@puppeteer:~ # vim /etc/logodidact/hosts/ldhost/guest.conf
15 {{/code}}
16
17 Ergänzen Sie die guest.conf um folgende Einträge:
18
19 {{code language="bash"}}
20 [Guest nextcloud-g1]
21 Ensure running
22
23 [Guest pgsql13]
24 Ensure running
25
26 # Falls gewünscht
27 [Guest collabora-g1]
28 Ensure running
29
30 # Falls noch nicht vorhanden und Nextcloud
31 # im Internet freigeschaltet werden soll
32 [Guest rev-proxy]
33 Ensure running
34 {{/code}}
35
36 Übernehmen Sie die Änderungen ins Git mit folgenden Befehlen:
37
38 {{code language="bash"}}
39 root@puppeteer:~ # cd /etc/logodidact
40 root@puppeteer:/etc/logodidact # git add .
41 root@puppeteer:/etc/logodidact # git commit -am "Aktivierung von Nextcloud und Collabora in der guest.conf."
42 {{/code}}
43
44
45 **3.** Kopieren Sie die Konfigurationsdateien **nextcloud-g1.yaml** und ggf. **collabora.yaml** aus dem Template-Verzeichnis:
46
47 Bei einer Nextcloud Nutzung mit Collabora kopieren Sie die beiden Dateien mit folgenden Befehl:
48
49 {{code language="bash"}}
50 root@puppeteer: # cp /usr/share/doc/ld-puppet10/templates/cloud/with_collabora/custom.d/* /etc/logodidact/hiera/custom.d/
51 {{/code}}
52
53
54 Sollten Sie nur die Nextcloud (ohne Dokumentenserver Collabora) nutzen wollen, führen Sie folgenden Befehl aus:
55
56 {{code language="bash"}}
57 root@puppeteer: # cp /usr/share/doc/ld-puppet10/templates/cloud/without_collabora/custom.d/nextcloud-g1.yaml /etc/logodidact/hiera/custom.d/
58 {{/code}}
59
60
61 **4. (Führen Sie diesen Schritt nur durch, wenn Sie Collabora nutzen möchten) **Bearbeiten Sie die **collabora-g1.yaml** und tauschen Sie in Zeile 2 den Platzhalter **"ShortName"** gegen den Shortname Ihrer Schule aus.
62
63 {{code language="bash"}}
64 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/collabora-g1.yaml
65 {{/code}}
66
67 {{code language="bash"}}
68 ld_collabora::config::allowed_hosts:
69 - nextcloud.ShortName.logoip.de
70
71 {{/code}}
72
73
74 **5.** Bearbeiten Sie die **nextcloud-g1.yaml** und fügen Sie die ersten beiden Abschnitte hinzu, um pgsql13 als Datenbank-Host festzulegen.
75
76 Passen Sie außerdem in den späteren Abschnitten die Platzhalter **"ShortName"** auf den Shortname Ihrer Schule an.
77
78 {{code language="bash"}}
79 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/nextcloud-g1.yaml
80 {{/code}}
81
82 {{code language="bash"}}
83 ld_nextcloud::install::params:
84 admin-user: ncadmin
85 database-host: &dbhost pgsql13
86 database-name: &dbname nextcloud
87 database-user: &dbuser nextcloud
88 data-dir: /var/lib/nextcloud
89
90 ld_nextcloud::db:
91 server: *dbhost
92
93 ld_nextcloud::config::system:
94 trusted_domains:
95 - nextcloud.ShortName.logoip.de
96
97 ld_nextcloud::config::app:
98 richdocuments.wopi_url:
99 value: 'https://collabora.ShortName.logoip.de'
100 {{/code}}
101
102
103 **6.** Übernehmen Sie die Änderungen ins Git:
104
105 {{code language="bash"}}
106 root@puppeteer:~ # cd /etc/logodidact
107 root@puppeteer:/etc/logodidact # git add .
108 root@puppeteer:/etc/logodidact # git commit -am "nextcloud-g1.yaml angepasst."
109 {{/code}}
110
111
112 Damit die Nextcloud-Installation in nextcloud-g1 erfolgreich abgeschlossen werden kann muss davor ein {{code}}prun{{/code}} in pgsql13 durchgeführt werden, damit dort eine nextcloud-Datenbank erstellt wird.
113
114
115 **7. (Führen Sie diesen Schritt nur durch, wenn Sie Nextcloud und ggf. Collabora im Internet freigeben möchten) **Damit die Nextcloud von außen erreichbar wird, müssen Sie den Rev-Proxy Container aktiviert haben und folgende Einträge in der **revproxy.conf** setzen:
116
117 Wechseln Sie in den Puppeteer:
118
119 {{code language="bash"}}
120 root@ldhost:~ # lxc-ssh -n puppeteer
121 {{/code}}
122
123 Fügen Sie folgende Zeilen in die **revproxy.conf **ein und tauschen die Platzhalter** "SCHULKUERZEL" **durch den jeweiligen Shortname Ihrer Schule:
124
125 {{code language="bash"}}
126 root@puppeteer:~ # vim /etc/logodidact/hosts/rev-proxy/revproxy.conf
127 {{/code}}
128
129 {{code language="bash"}}
130 [ReverseProxy nextcloud.SCHULKUERZEL.logoip.de]
131 Url https://nextcloud
132
133 # Falls gewünscht
134 [ReverseProxy collabora.SCHULKUERZEL.logoip.de]
135 Url https://collabora
136 {{/code}}
137
138
139 Übernehmen Sie die Änderungen ins Git:
140
141 {{code language="bash"}}
142 root@puppeteer:~ # cd /etc/logodidact
143 root@puppeteer:/etc/logodidact # git add .
144 root@puppeteer:/etc/logodidact # git commit -am "revproxy.conf um Einträge für Nextcloud und Collabora ergänzt."
145 {{/code}}
146
147
148 **9.** Nun sollten Sie Zertifikate für die Nextcloud und evlt. Collabora Adressen beantragen. Hier gibt es je nach verwendetem Programm (acmetool & acme.sh) zwei Wege:
149
150
151 ===== __acmetool__ =====
152
153 Wechseln Sie in den puppeteer Container:
154
155 {{code language="bash"}}
156 root@ldhost:~ # lxc-ssh -n puppeteer
157 {{/code}}
158
159
160 Fordern Sie die Zertifikate für die Nextcloud und Collabora Adressen mit folgendem Befehl an (Ersetzen Sie **"SCHULKUERZEL"** mit dem jeweiligen Shortname):
161
162 {{code language="bash"}}
163 root@puppeteer:~ # acmetool want nextcloud.SCHULKUERZEL.logoip.de
164
165 # Falls gewünscht
166 root@puppeteer:~ # acmetool want collabora.SCHULKUERZEL.logoip.de
167 {{/code}}
168
169 ===== =====
170
171 ===== =====
172
173
174
175 (% class="box infomessage" %)
176 (((
177 __**Tipp:**__ Sollte es bei der Nutzung des acmetools zu Problemen kommen, kann die Einrichtung von Split-DNS helfen. Eine Anleitung zur Einrichtung finden Sie unter folgender Adresse: [[Einrichtung Split-DNS>>https://kb.logodidact.com/xwiki/bin/view/Main/LD%20Server/Allgemein/Einrichtung%20Split-DNS/]]
178 )))
179
180
181 ===== __acme.sh__ =====
182
183 Wechseln Sie in den puppeteer Container:
184
185 {{code language="bash"}}
186 root@ldhost:~ # lxc-ssh -n puppeteer
187 {{/code}}
188
189
190 Wechseln Sie im puppeteer Container in die Umgebung für das Verwalten der Zertifikate:
191
192 {{code language="bash"}}
193 root@puppeteer:~ # sle
194 {{/code}}
195
196
197 Beantragen Sie ein neues Zertifikat mit folgendem Befehl (Ersetzen Sie **"SCHULKUERZEL"** mit dem jeweiligen Shortname):
198
199 {{code language="bash"}}
200 le-acme@puppeteer:~ $ issue nextcloud.SCHULKUERZEL.logoip.de
201
202 # Falls gewünscht
203 le-acme@puppeteer:~ $ issue collabora.SCHULKUERZEL.logoip.de
204 {{/code}}
205
206
207 **10.** Um Nutzern Zugriff auf die Nextcloud zu ermöglichen, muss in der LogoDIDACT-Console eine Rolle mit dem Namen **"ld-sg-nextcloud" **erstellen werden.
208
209 Fügen Sie Benutzer der Rolle ld-sg-nextcloud hinzu. Nur Nutzer in dieser Gruppe können sich später an der Nextcloud-Plattform anmelden. Es kann bis zu 5 Minuten dauern, bis die Aktivierung bei Änderungen vollzogen ist.
210
211 [[image:1652079923794-166.png]]
212
213
214 **11.** Zu guter Letzt können Sie die Anmeldung wie folgt überprüfen:
215
216
217 Rufen Sie in ihrem Browser folgende Adresse auf (Ersetzen Sie **"SCHULKUERZEL"** durch den Shortname):
218
219 {{code language="bash"}}
220 https://nextcloud.SCHULKUERZEL.logoip.de/
221 {{/code}}
222
223
224 Melden Sie sich mit einem zulässigen Benutzer an, der im vorherigen Schritt als Mitglied zur Gruppe **ld-sg-nextcloud** hinzugefügt wurde:
225
226 [[image:1652080106839-833.png]]
227
228
229 Nach geglücktem Login-Vorgang stehen im Reiter **"Dateien"** automatisch die Dateien & Freigaben des Servers zur Verfügung, um die persönlichen Dokumente zu erreichen.