====== gallifrey ======
**Dieser Server existiert nicht mehr. Es gibt jetzt [[infrastruktur:server:magrathea|magrathea]]**
gallifrey war ein Server bei Hetzner. Dort laufen mehrere VMs und Container, die Dienste für das Chaotikum bereitstellen.
Administrativen Zugriff auf den Server haben:
* Björn
* Dominik
* Jannis
* Linus
* Lukas
* Moritz
* Magu
* Matthias
* Nils
* Kai
* Paul
===== Netzwerkdaten =====
==== Öffentliche IPv4 ====
Service-Container bekommen nicht selbst öffentliche IP-Adressen, sondern werden per DNAT oder Reverse Proxy angebunden.
^ IP ^ Funktion ^
| 176.9.147.99 | host-ip |
| 176.9.147.120 | [[ag:infrastruktur:ffhl-srv02]] |
| 5.9.47.118 | [[infrastruktur:container:mail]].chaotikum.net |
| 176.9.147.89 | [[ag:infrastruktur:chaotikum:ds-build|dsbuild]].chaotikum.net |
Wenn eine IPv4 dazukommt, oder eine neue Funktion übernehmen soll sind folgende Schritte relevant
* Beim hoster (aktuell hetzner) ist der Reverse-DNS-Eintrag anzulegen (Zugang hat der Vorstand)
* Beim DNS (inwx) ist der A Record zu hinterlegen (Zugang hat der Vorstand)
* Auf gallifrey ''/etc/network/interfaces'' anpassen (unten, Abschnitt vms). //(Entweder reboot zum aktivieren, oder die geänderten Zeilen (ohne up am Anfang, $IFACE durch vms ersetzten) direkt in die shell tippen. Vorher Ausgabe von "ip r" und nachher vergleichen, dann siehst du, was es bewirkt.)// WICHTIG: Definitiv in die Datei schreiben, dasKommando ist anstelle des Reboots
* Container konfigurieren: Dabei geht es um ''/etc/network/interfaces'' Beim Inhalt an existierenden Containern orientieren.
* Im neuen Container ''/etc/init.d/networking restart'' um die neue Netzwerkkonfiguration zu aktivieren
==== IPv6 & internes IPv4 ====
IPv6-Prefix: 2a01:4f8:160:3067::/64
Zwischen den VMs wird zusätzlich ein internes Subnetz verwendet: 192.168.1.0/24 \\
Die VMs kommen per Masquerade ins IPv4-Internet.
^ Identifier ^ IPv4 ^ Funktion ^
| ::2 | 192.168.1.2 | host-ip |
| ::3 | 192.168.1.3 | [[infrastruktur:host:ffhl-srv01]] |
| ::4 | 192.168.1.4 | [[infrastruktur:host:ffhl-srv02]] |
| ::5 | 192.168.1.5 | [[ag:infrastruktur:chaotikum:ccchl]] |
| ::6 | 192.168.1.6 | [[ag:infrastruktur:chaotikum:c3po]] (inaktiv) |
| ::7 | 192.168.1.7 | [[ag:infrastruktur:chaotikum:monitor]] |
| ::8 | 192.168.1.8 | [[infrastruktur:container:ldap]] |
| ::9 | 192.168.1.9 | [[infrastruktur:container:mail]] |
| ::a | 192.168.1.10 | [[ag:infrastruktur:chaotikum:web]] |
| ::b | 192.168.1.11 | [[infrastruktur:container:seafile]] |
| ::c | 192.168.1.12 | [[infrastruktur:container:postgres]] |
| ::d | 192.168.1.13 | [[infrastruktur:container:redmine]] |
| ::e | 192.168.1.14 | [[ag:infrastruktur:chaotikum:gitlab]] |
| ::f | 192.168.1.15 | [[ag:infrastruktur:chaotikum:buildweb]] |
| ::10 | 192.168.1.16 | [[ag:infrastruktur:chaotikum:metanook]] |
| ::11 | 192.168.1.17 | [[ag:infrastruktur:chaotikum:status]] |
| ::12 | 192.168.1.18 | [[infrastruktur:container:pretix]] |
| ::13 | 192.168.1.19 | [[ag:infrastruktur:chaotikum:microll]] |
| ::14 | 192.168.1.20 | [[ag:infrastruktur:chaotikum:schnitzeljagd]] |
| ::15 | 192.168.1.21 | [[ag:infrastruktur:chaotikum:ds-build]] |
| ::16 | 192.168.1.22 | [[ag:infrastruktur:chaotikum:ffhl-gluon01]] |
| ::22 | 192.168.1.34 | [[ag:infrastruktur:chaotikum:dashboard]] |
| ::23 | 192.168.1.35 | [[ag:infrastruktur:chaotikum:monitoring]] |
| ::24 | 192.168.1.36 | [[ag:infrastruktur:chaotikum:engelsystem]] |
| ::25 | 192.168.1.37 | [[infrastruktur:service:c3moin]] |
| ::26 | 192.168.1.38 | [[infrastruktur:container:nookvideo]] |
| ::27 | 192.168.1.39 | [[infrastruktur:container:keycloak]] |
| ::36 | 192.168.1.54 | [[infrastruktur:container:etherpad|pad]] |
| ::37 | 192.168.1.55 | [[infrastruktur:container:sediment]] |
| ::38 | 192.168.1.56 | [[infrastruktur:container:codi]] |
| ::39 | 192.168.1.57 | [[ag:infrastruktur:chaotikum:nachtlicht]] |
Wer dieser Liste etwas hinzufügen möchte und nicht besser weiß, was er/sie tut, ist wahrscheinlich gut bedient damit einen neuen Container anzulegen. Wie das geht steht [[https://wiki.chaotikum.org/ag:infrastruktur:chaotikum:gallifrey#aufsetzen_eines_neuen_containers|weiter unten]].
===== VMs =====
Die VMs liegen in der VG vg_data und werden nach dem Schema //vm_name//.img benannt.
^ VM ^ Produktiv? ^ Funktion ^
===== Container =====
Container sind per Default nur per IPv6 aus dem Internet erreichbar. Soll ein Service auch über IPv4 nutzbar sein, so sollte die Domain für den Server als CNAME auf gallifrey.chaotikum.net konfiguriert werden und die benötigten Ports per DNAT weitergereicht werden (IPv4 + IPv6).
Der Eintrag eines CNAMEs findet auf [[https://www.inwx.com|inwx.com]] statt, Zugang zum Account des Chaotikums hat der Vorstand. Dort ist unter //Domain//->//Domain List// die Domain auszuwählen, zu der eine Subdomain erstellt werden soll. Unten //DNS Records// auswählen und einen neuen Eintrag entsprechend zu einem funktionierenden alten hinzufügen.
^ Container ^ Produktiv? ^ Funktion ^ Weitergeleitete Ports ^
| [[ag:infrastruktur:chaotikum:ccchl]] | **ja** | www.ccchl.de | keine (Reverse Proxy durch web) |
| [[infrastruktur:container:ldap]] | **ja** | LDAP-Server | ldaps (tcp/636) |
| [[infrastruktur:container:mail]] | **ja** | Mailserver (SMTP, IMAP) | keine (eigene IPv4/IPv6) |
| [[ag:infrastruktur:chaotikum:web]] | **ja** | Webserver, Webservices | 80, 443 |
| [[infrastruktur:container:seafile]] | **ja** | Seafile | keine (Reverse Proxy durch web) |
| [[infrastruktur:container:postgres]] | **ja** | PostgreSQL | keine (nur intern/IPv6) |
| [[infrastruktur:container:redmine]] | **ja** | Redmine | keine (Reverse Proxy durch web) |
| [[ag:infrastruktur:chaotikum:buildweb]] | **nein** | Gitlab Runner | keine, reiner Client |
| [[ag:infrastruktur:chaotikum:dashboard]] | **ja** | Smashing Dashboard | keine (Reverse Proxy durch web) |
| [[infrastruktur:container:pretix]] | **ja** | Pretix | keine (Reverse Proxy durch web) |
| [[ag:infrastruktur:chaotikum:schnitzeljagd]] | **nein** | Schnitzeljagd | ? |
| [[ag:infrastruktur:chaotikum:ds-build]] | **ja** | Tex-Build für die Datenschleuder | keine (eigene IPv4/IPv6) |
| microll | **nein** | microll | ? |
| [[ag:infrastruktur:chaotikum:engelsystem]] | **nein** | Engelesystem | keine |
| [[ag:infrastruktur:chaotikum:nachtlicht]] | **ja** | Website des Nachtlchts | keine (Reverse Proxy durch web) |
==== Aufsetzen eines neuen Containers ====
Zum automatisierten Aufsetzen eines neuen Containes kann das Script
/root/mkcontainer.sh
verwendet werden.
Nach ausführen des Kommandos wird man gefragt welchen Name der Container haben soll, danach welche IP. Die Liste genutzter IPs findet sich weiter oben auf der Seite.
Die [[ag:infrastruktur:container:installation|manuelle Installation]] ist eine Alternative zu ''/root/mkcontainer.sh'' und sollte gewöhnlich nicht notwendig sein.
Du kommst dann mit ''ssh [containername]'' auf deinen container.
//Zum Datenschutz: Du kannst auf deinem Container neue Keys hinzufügen, damit mehr Menschen auf den Container kommen. Es gibt hier eine Einschränkung. Verarbeiten die Systeme auf dem Container personenbezogenen Daten darf die Anzahl von Menschen die Zugriff haben nicht größer als 9 Personen sein (was sie auf Gallifrey bereits ist).//
===== Services =====
{{topic>:infrastruktur:service?infrasystem +service +gallifrey}}
===== SSL =====
Um deine neue subdomain oder domain mit SSL zu versorgen musst du dem certbot sagen, dass die Domain existiert. Das tut man im //web// container.
Der Befehl sieht exakt genau so aus:
certbot certonly --expand -d chaotikum.org -d dashboard.chaotikum.org -d git.chaotikum.org -d mail.chaotikum.org -d pad.chaotikum.org -d redmine.chaotikum.org -d seafile.chaotikum.org -d wiki.chaotikum.org -d www.ccchl.de -d www.chaotikum.org -d metanook.de -d www.metanook.de -d pretix.chaotikum.org -d sediment.chaotikum.org -d status.chaotikum.org -d nook-luebeck.de -d www.nook-luebeck.de -d xn--nook-lbeck-feb.de -d www.xn--nook-lbeck-feb.de -d 2011.nook-luebeck.de -d 2011.xn--nook-lbeck-feb.de -d 2012.nook-luebeck.de -d 2012.xn--nook-lbeck-feb.de -d 2013.nook-luebeck.de -d 2013.xn--nook-lbeck-feb.de -d 2014.nook-luebeck.de -d 2014.xn--nook-lbeck-feb.de -d 2015.nook-luebeck.de -d 2015.xn--nook-lbeck-feb.de -d 2016.nook-luebeck.de -d 2016.xn--nook-lbeck-feb.de -d 2017.nook-luebeck.de -d 2017.xn--nook-lbeck-feb.de -d 2018.nook-luebeck.de -d 2018.xn--nook-lbeck-feb.de -d 2019.nook-luebeck.de -d 2019.xn--nook-lbeck-feb.de -d 2020.nook-luebeck.de -d 2020.xn--nook-lbeck-feb.de -d frab.nook-luebeck.de -d frab.xn--nook-lbeck-feb.de -d docs.chaotikum.org -d nachtlicht.chaotikum.org -d nobreakspace.org -d www.nobreakspace.org -d me.chaotikum.org -d c3moin.org -d www.c3moin.org
Da müssen alle Domains drin sein, also suche am besten die letzte Nutzung aus der Historie und ergänze ihn am ende um -d . Den Befehl hier im Wiki auch unbedingt immer updaten!.
Danach muss //nginx// die Konfiguration neu laden, damit es das neue Zertifikat auch ausliefert.
systemctl reload nginx
====Trubbleshooting====
Eventuell kommen jetzt Rückfragen vom Tool:
How would you like to authenticate with the ACME CA?
-------------------------------------------------------------------------------
1: Place files in webroot directory (webroot)
2: Spin up a temporary webserver (standalone)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
Hier ist ''Place files in webroot directory (webroot)'' die richtige Auswahl. Mit der anderen Option erhält man zwar ein Zertifikat, aber müsste den Webserver stoppen, was vor allem nicht automatisch beim automatischen Erneuern des Zertifikates passiert.
Wenn man nach dem Pfad für den webroot gefragt wird ist ''/var/www/challenges/'' die richtige Antwort (Das ist in der nginx conf für die Seite angegeben, der Location-Block mit .well-known).
Der certbot sollte nun durchlaufen und dir sagen, dass alles funktioniert hat.
Wenn man versehentlich per standalone ein Zertifikat geholt hat, muss man eine config Datei (''/etc/letsencrypt/renewal/cal.chaotikum.org.conf'') anpassen, damit das automatische Erneuern wieder geht: Im Abschnitt ''[renewalparams]'' muss ''authenticator = webroot'' gesetzt sein, und als nächste zeile ''webroot_path = /var/www/challenges/'' vorhanden sein. Danach geht es wieder. Testen kann man dies mit ''certbot renew -''''-dry-run'', was man allerdings nicht zu oft machen sollte, da man sonst das API-Limit erreicht.
===== Backup =====
Ein nächtliches Backup von Gallifrey wird auf [[infrastruktur:server:case|Case]] gesichert. Weitere Informationen siehe [[infrastruktur:host:backup|Backup]].
===== Ideen =====
* Zram?
* dn42 subnetz?
=== Name ===
Gallifrey is a fictional planet in the long-running British science fiction television series Doctor Who. It is the original home world of the Time Lords, the civilisation to which the main protagonist, the Doctor belongs. It is located in a binary star system 250 million light years from Earth. [[https://en.wikipedia.org/wiki/Gallifrey]]
{{tag>server inactive}}