====== magrathea ======
magrathea ist ein Server bei Hetzner. Dort laufen mehrere VMs und Container, die Dienste für das Chaotikum bereitstellen.
|Verantwortung |Paul, Wupo |
|Zustand |Produktiv |
Administrativen Zugriff auf den Server haben:
* Nils
* Lukas
* wupo
* Malte
* toxicity
* Fabi
* starborn
* Paul
* dj-wawa
* Linus
Eine Entsprechende Gruppe (magrathea admins) existiert im Redmine Infra Projekt und muss angepasst werden, wenn diese Liste angepasst wird. Das können Redmine Admins.
===== Netzwerkdaten =====
* IPv6-Addresse: **''2a01:4f8:262:48c2::1/64''**
* IPv4-Addresse: **''138.201.66.177/32''**
* IPv4-Subnet: **''5.9.249.24/29''**
* VMs-Subnetz v4: **''192.168.1.0/24''**
* VMs-Subnetz v6: **''2a01:4f8:262:48c2:1::/80''**
* Docker-Subnetz: **''2a01:4f8:262:48c2:3::/80''**
==== Öffentliche IPv4 ====
Service-Container bekommen nicht selbst öffentliche IP-Adressen, sondern werden per DNAT oder Reverse Proxy angebunden. Außer es ist zwingend notwendig.
Für solche Fälle steht haben wir das subnet ''**5.9.249.24/29**''.
^ IP ^ Funktion ^
| ''5.9.249.24'' | magrathea |
| ''5.9.249.25'' | [[infrastruktur:container:git]] |
| ''5.9.249.26'' | [[infrastruktur:container:video]] |
| ''5.9.249.27'' | FFHL-test-gw |
| ''5.9.249.28'' | [[infrastruktur:container:web|web]]-reverse-proxy |
| ''5.9.249.29'' | [[infrastruktur:host:ffhl-srv02]] |
| ''5.9.249.30'' | |
| ''5.9.249.31'' | |
==== IPv6 & internes IPv4 ====
Als internes Netzwerk wird das öffentliche IPv6-Prefix **''2a01:4f8:262:48c2:1::/80''** verwendet.
^ Identifier ^ IPv6-suffix ^ IPv4 ^ Funktion ^
| vms | ''::1'' | ''192.168.1.1'' | default gateway für container/vm |
| ''ffhl-gluon01'' | ''::2'' | ''192.168.1.2'' | "Freifunk Router" für [[infrastruktur:host:ffhl-srv02]] |
| ''ffhl-srv02'' | ''::3'' | ''192.168.1.3'', ''5.9.249.29'' | [[infrastruktur:host:ffhl-srv02]] |
| ''monitoring'' | ''::4'' | ''192.168.1.4'' | [[infrastruktur:container:monitoring]] |
| ''gitlab'' | ''::5'' | ''192.168.1.5'' | [[infrastruktur:container:git]] |
| ''codi'' | ''::6'' | ''192.168.1.6'' | |
| ''social'' | ''::6'' | ''192.168.1.6'' | [[infrastruktur:container:social]] |
| ''pad'' | ''::7'' | ''192.168.1.7'' | [[infrastruktur:container:etherpad]] |
| ''ldap'' | ''::8'' | ''192.168.1.8'' | [[infrastruktur:container:ldap]] |
| ''web'' | ''::a'' | ''192.168.1.10'' | NGINX reverse proxy ([[infrastruktur:container:web]]) |
| ''runner-magrathea'' | ''::b'' | ''192.168.1.11'' | [[infrastruktur:container:gitlab-runner]] |
| ''roundcube'' | ''::e'' | ''192.168.1.14'' | [[infrastruktur:container:roundcube]] |
| ''dokuwiki'' | ''::f'' | ''192.168.1.15'' | [[infrastruktur:container:dokuwiki]] |
| ''gitlab-runner'' | ''::10'' | ''192.168.1.16'' | gitlab-runner02 |
| ''pretix'' | ''::12'' | ''192.168.1.18'' | |
| ''redmine'' | ''::13'' | ''192.168.1.19'' | [[infrastruktur:container:redmine]] |
| ''md'' | ''::15'' | ''192.168.1.21'' | [[infrastruktur:container:md]] |
| ''ffhl-blackbox'' | ''::16'' | ''192.168.1.22'' | monitoring ffhl |
| ''mail'' | ''::25'' | ''192.168.1.25'' | [[infrastruktur:container:mail]] |
| ''ffhl-gw05'' | ''::1a'' | ''192.168.1.26'' | [[https://wiki.luebeck.freifunk.net/docs/infrastruktur/%C3%BCbersicht/|ffhl-gw05]] |
| ''keycloak'' | ''::27'' | ''192.168.1.39'' | [[infrastruktur:container:keycloak]] |
| ''sediment'' | ''::37'' | ''192.168.1.55'' | [[infrastruktur:container:sediment]] |
| ''video'' | ''::26'' | ''176.9.147.89'', ''192.168.1.38'' | video-storage |
| ''nextcloud'' | ''::38'' | ''192.168.1.56'' | [[infrastruktur:container:nextcloud]] |
| ''website'' | ''::39'' | ''192.168.1.57'' | [[infrastruktur:container:website]] |
| ''torproxy'' | ''::3a'' | ''192.168.1.58'' | |
| ''zammad'' | ''::3b'' | ''192.168.1.59'' | [[infrastruktur:container:zammad]] |
| ''openproject'' | ''::3c'' | ''192.168.1.60'' | [[infrastruktur:container:openproject]] |
| ''keycloak2'' | ''::3d'' | ''192.168.1.61'' | [[infrastruktur:container:keycloak2]] |
| ''syncthing-server'' | ''::3e'' | ''192.168.1.62'' | [[infrastruktur:container:syncthing-server]] |
| ''wupo'' | ''::3f'' | ''192.168.1.63'' | [[infrastruktur:container:wupo]] |
| ''kali'' | ''::4c'' | ''192.168.1.64'' | |
| ''todo'' | ''::40'' | ''192.168.1.65'' | [[infrastruktur:container:todo]] |
| ''docker01'' | ''::41'' | ''192.168.1.66'' | [[infrastruktur:container:docker01]] |
| ''presence'' | ''::42'' | ''192.168.1.67'' | [[infrastruktur:container:presence]] |
| ''uptime-kuma'' | ''::46'' | ''192.168.1.70'' | uptime kuma |
| ''vapi'' | ''::47'' | ''192.168.1.71'' | vAPI |
| ''nooksite-server'' | ''::48'' | ''192.168.1.72'' | Server zum Speichern der Einreichungen der NooK |
| ''matamo'' | '':49'' | ''192.168.1.73'' | |
| ''listmonk'' | '':4a'' | ''192.168.1.74'' | [[infrastruktur:container:listmonk]] |
| ''postkontor'' | '':4b'' | ''192.168.1.75'' | [[infrastruktur:container:postkontor]]
| ''welcome-bot'' | '':4c'' | ''192.168.1.76'' | [[infrastruktur:container:matrix-welcome-bot]] |
| ''verleih-mail-service'' | '':4d'' | ''192.168.1.77'' | [[infrastruktur:container:verleih-mail-service]] |
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 weiter unten.
==== Docker Netz ====
**Nicht aktiv! (01.10.2022)**
**''2a01:4f8:262:48c2:3::/80''**
^ Identifier ^ IPv6-suffix ^ Funktion ^
| docker-host | ''::1'' | Gateway |
| nooksite-server | ''::aaaa'' | Server für Einreichungen auf der NooK-Website |
| nooksite-feedback | ''::aaab'' | Server für Feedback auf der Nook-Website |
| test | ''::abcd'' | test |
===== VMs =====
**Laufende VMs**
{{topic>:infrastruktur:host?magrathea +productive&nodate&nouser&desc&table&sort}}
**Derzeit nicht laufende VMs**
{{topic>:infrastruktur:host?magrathea -productive&nodate&nouser&desc&table&sort}}
==== Zugang zum Management Interface ====
Das proxmox interface ist unter [[https://magrathea.chaotikum.net:8006/|magrathea.chaotikum.net:8006]]
**Die Zugänge werden //nicht// über das zentrale LDAP verwaltet**
Wenn du Zugriff benötigst, wende dich an die Infrastruktur AG
===== 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.
**Produktive**
{{topic>:infrastruktur:container?magrathea +productive&nodate&nouser&desc&table&sort}}
**Im Test**
{{topic>:infrastruktur:container?magrathea +testing&nodate&nouser&desc&table&sort}}
**Deaktiviert**
{{topic>:infrastruktur:container?magrathea +inactive&nodate&nouser&desc&table&sort}}
**Gelöscht**
{{topic>:infrastruktur:container?magrathea +deleted&nodate&nouser&desc&table&sort}}
==== Aufsetzen eines neuen Containers ====
Zunächst muss eine freie IP-Adresse für den neuen Container gefunden werden. Schaue dafür in der Liste oben nach. Versuche, die IPs möglichst fortlaufend auszuwählen.
* General
* Klicke oben rechts auf "Create CT"
* Trage einen Hostname ein, wähle bei ''Resource Pool'' "chaotikum" aus
* Trage deinen SSH key ein
* Template
* Wähle deinen Container Template. In den meisten Fällen ''debian-11''.
* Disks
* Wähle bei ''disksize'' eine angemessene Größe aus
* Achtung: Die Disk später größer machen geht immer. Die Disk shrinken allerdings nicht. Also mache sie im Zweifelsfall eher etwas kleiner
* Memory
* 2048 ist für den Anfang eine Guter Richtwert
* Kann später während der Runtime noch verändert werden
* Networks
* Trage bei jeweils deine IPv4 und IPv6 Adressen ein mit einer Netzmaske von ''/24'' (IPv4) und ''/80'' (IPv6)
* Default Gateway ist jeweils ''192.168.1.1'' und ''2a01:4f8:262:48c2:1::1''
* Confirm
* Finish!
* Damit der Container automatisch startet, setze unter Options ''Autostart'' auf ''yes''
**Letzter aber wichtigster Schritt:**
Dokumentation im Wiki erstellen
===== Docker =====
**Dieser Teil ist nicht mehr aktuell (07.10.2022)**
Auf Magrathea läuft docker. Das Netz für docker ist **''2a01:4f8:262:48c2:3::/80''**.
Die Container sind per default nicht von außen erreichbar, können aber von dem VM-Netz angesprochen werden (z.B. für vom [[infrastruktur:container:web|Web]]-container)
Ein docker-compose könnte so aussehen:
version: '3'
services:
test:
image: nginxdemos/hello
restart: always
networks:
public:
# IP-Belegung beachten! (Tabelle oben)
ipv6_address: 2a01:4f8:262:48c2:3::abcd
networks:
public:
external:
name: services
===== Backup =====
Backups werden täglich um 4 Uhr gemacht.
Also Storage wird ein [[https://www.proxmox.com/en/proxmox-backup-server|Proxmox Backup Server]] benutzt. Der Backupserver läuft als VM im nsbp auf [[infrastruktur:server:case|Case]].
Um Backups zu restoren ist kein Zugriff auf den Backupserver nötig. Alle verfügbaren Backups sind über das Proxmox Interface von magrathea sichtbar.
Anstatt eine gesamte VM/Container zu restoren, können auch nur einzelne Dateien restored werden. Welche Datei das sein soll, lässt sich ebenfalls über das Webinterface auswählen.
===== Name =====
Magrathea is a fictional planet in the "Hitchhiker's Guide to the Galaxy" book series. Magrathea is an ancient planet located in orbit around the twin suns Soulianis and Rahm in the heart of the Horsehead Nebula. [[https://hitchhikers.fandom.com/wiki/Magrathea]]
{{tag>infrasystem server magrathea}}