From: Stefan Hagen <sh@uugrn.org>
To: uugrn@uugrn.org
Cc: 
Bcc: 
Subject: Infrastruktur - Konkrete Schritte + Adminsuche
Reply-To: 
Precedence: first-class
Priority: normal
X-Editor: VIM - Vi IMproved 8.1 
X-Operating-System: OpenBSD 6.5 amd64
X-Mailer: Mutt 1.11.4 (2019-03-13)
X-PGP-Fingerprint: CBD3 C468 64B4 6517 E8FB B90F B6BC 2EC5 52BE 43BA
OpenPGP: id=52BE43BA; url=https://codevoid.de/0/gpg; preference=signencrypt

Hallo Leute,

Diese Mail macht Spaß auf einem Gerät, welches in der Lage ist 72
Zeichen pro Zeile anzuzeigen (idealerweise Monospace).

|<------------------ das ist von hier, bis da ------------------------>|

Und auf Grund der Länge, hier ein Inhaltsverzeichnis:

0. Vorwort
1. Das neue Konzept
    1.1 UUGRN Services
    1.2 Mitglieder VMs
2. Grund und Vorteile
3. Umsetzung
    3.1 Admins gesucht
    3.2 Server / Services
        3.2.1 Mailserver
        3.2.2 SHELL Server
        3.2.3 UUGRN Webserver
        3.2.4 IRC Server
        3.2.5 Blog Server
        3.2.6 NEXTCLOUD Server
        3.2.7 ETHERPAD Server
        3.2.8 DNS Server
    3.4 Admin-Aufgaben
    3.3 Abschussliste
5. Finanzierung
6. Nächste Schritte


0. Vorwort
=======================
Beim letzten FIXME hatten wir (mal wieder) das Infrastruktur Thema auf 
dem Tisch. Nachdem ich Feedback von euch eingesammelt habe und auf 
geteilte Meinungen gestoßen bin, denke ich wir haben jetzt eine gute
Lösung gefunden die sowohl VMs als auch einen dedizierten Server 
vorsieht.


1. Das neue Konzept
=======================

1.1 UUGRN Services
-----------------------
Das neue Server-Konzept sieht vor, dass wir UUGRN Dienste wie IRC, Mail,
Web etc. auf unabhängige VMs umziehen. Für jede dieser VMs soll es einen
Admin geben, der sich um den Dienst kümmert. Dabei ist völlig dem Admin
völlig freigestellt wie er den Dienst ans Laufen bekommt. Also freie OS
und Daemon-Wahl.

Beispiel: Die Anforderung für die IRC VM wäre, dass wir weiter einen IRC
Server und den Channel #uugrn haben. Welches OS und welche IRC-Server
Implementierung diese Aufgabe löst ist dem Admin überlassen.


1.2 Mitglieder VMs
-----------------------
Noch nicht ganz geklärt ist das Thema mit dem Mitglieder Jails bzw. 
zukünftig vermutlich VMs. Zwei Möglichkeiten gibt es:
    - Wir geben den Mitgliedern eine VM
    - Wir mieten einen dedizierten Server auf dem ein Mitglied Proxmox 
      oder ähnliches betreibt und VMs für die Mitglieder anbietet.

Der Stand hier ist, dass wir gerne die zweite Lösung umsetzen würden.
Ob das klappt steht und fällt damit ob wir eine Person finden, die hier
längerfristig den Meta-Admin machen möchte.


2. Begründung und Vorteile
=======================
Einzelne Dienste bei einzelnen Admins löst das "Meta Admin"-Problem. 
Wenn ein Server ausfällt, dann fällt eben ein Dienst aus - und nicht die 
ganze Infrastruktur. Wenn ein Mitglied ausfällt, dann müssen wir einen 
Server und seine Dienste neu aufsetzen - und nicht alle. Das schafft
Flexibilität und reduziert das Risiko dass zu viel an einzelnen Personen
hängt.

Des weitern fördern wir damit die aktive Teilnahme der Mitglieder an 
unseren Diensten und schaffen die Freiheit Admins mit dem OS arbeiten
zu lassen mit dem sie sich auskennen.

Schön wären viele Beiträge/Vorträge beim Fixme darüber, wie die 
unterschiedlichen Services laufen. Welche Probleme es beim aufsetzen 
gab und wie sie gelöst wurden. 


3. Umsetzung
=======================
Zuerst wollen wir uns um die UUGRN Services kümmern. Das bedeutet wir 
brauchen Freiwillige, die diese Services aufsetzen und administrieren.


3.1 Admins gesucht
-----------------------
Wir brauchen 9 Admins. Wir haben beim letzten Fixme schon fleissig
Posten verteilt. Das bedeutet aber nicht, dass sich sonst niemand als
Backup melden darf. Wer Interesse hat irgendwo mitzuarbeiten - melden.

Was auf den einzelnen VMs laufen soll steht weiter unten.

== SERVICE ============ | == ADMIN (BACKUP) ============================
* Mailserver            | Sur5r, Zugschluss (Anna)
* Shell-Server          | Zugschluss ( )
* UUGRN Webserver       | Anna ( )
* IRC-Server            | Sdk ( )
* DNS-Server            | Zugschluss ( )
* IRC/XMPP-Server       | Sdk ( )
* Blog-Server           | Flow ( )
* Nextcloud-Server      | (Flow)
* Pad-Server            | Andi (Sdk)
* Proxmox(?) Meta Admin | ( )
========================================================================


3.2 Server / Services
-----------------------
Anmerkung zum Sizing: Ich habe mich an den Hetzner VM-Größen orientiert.
Dort verdoppelt sich immer CPU Core, Ram und Plattenkapazität. Teilweise 
wurden größere VMs wegen CPU, teilweise aber auch nur wegen der 
Plattenkapazität gewählt. Wir sollten mit den ersten beiden locker 
auskommen. (Der Preis verdoppelt sich ja auch...)

Verfügbare VMs:
* 1 vCPU,  20GB SSD,  2 GB RAM
* 2 vCPU,  40GB SSD,  4 GB RAM
* 2 vCPU,  80GB SSD,  8 GB RAM
* 4 vCPU, 160GB SSD, 16 GB RAM


3.2.1 Mailserver
-----------------------
Mailhandling:
- Eingehende Mails werden weitergeleitet (an Mitglieder Adressen)
- Ausgehende Mails werden nach Anmeldung erlaubt
    (ggf. von UUGRN VM IPs auch ohne)

Jedes Mitglied bekommt:
- vorname.nachname@uugrn.org
- nickname@uugrn.org

Administrative Adressen:
- uugrn@uugrn.org (Mailingliste)
- vorstand@uugrn.org (Mailingliste)
- postmaster@uugrn.org -> admin
- abuse@uugrn.org -> admin+vorstand

Die Mailinglisten sollen weiterlaufen.
- uugrn@uugrn.org
- vorstand@uugrn.org
Es gibt noch weiter Listen die allerdings nicht benutzt werden.

Es solle ein WebArchiv mit historischen Nachrichten geben.

Vorschlag:
- Hostname: mail.uugrn.org + lists.uugrn.org
- Software: Mailserver, Webserver, Listensoftware, Archivsoftware
- Hardware: 2 vCPU VM (40GB)


3.2.2 SHELL Server
-----------------------
Jedes Mitglied bekommt einen Shell Account. Shell sollte die gängigen
Unix Tools anbieten. Je nach Ausbaustufe und Interesse des Admins
könnte man hier noch ein bisschen Webspace aka /~username anbieten.

Vorschlag: 
- Hostname shell.uugrn.org
- Software: irssi, screen, $tools
- Hardware: 2 vCPU VM (40GB)


3.2.3 UUGRN Webserver
-----------------------
Hier liegen die UUGRN Webseiten. Ich würde das Wiki noch mit dazu legen.
Ggf. weitere UUGRN Tools (CFP etc.). Die News und Status Seiten wurden
nie gepflegt (brauchen wir nicht mehr).

Vorschlag:
- Hostname: {www,fixme,stammtisch,wiki}.uugrn.org
- Software: Apache, Wordpress, Mediawiki
- Hardware: 2 vCPU VM (40GB)


3.2.4 IRC / XMPP Server
-----------------------
IRC soll weiter laufen. BNC kommt hier mit drauf.
Wie ist Interesse an Jabber? Das könnte hier mit drauf, oder auf eine
separate VM falls ein anderer Admin das übernehmen möchte.

Falls wir einen Jabber Server aufsetzen, soll jedes Mitglied analog
zur E-Mail Adresse auch Jabber Adressen bekommen: <nick>@uugrn.org

Vorschlag:
- Hostname: irc.uugrn.org (ggf. jabber.uugrn.org)
- Software: irc server (momentan inspircd), bnc (momentan znc), jabber?
- Hardware: 1 vCPU VM (20GB)


3.2.5 BLOG Server
-----------------------
Planet und Blogs, wie gehabt.

Vorschlag:
- Hostname: blogs.uugrn.org
- Software: Webserver, DB, Wordpress, News Aggregator Software
- Hardware: 2 vCPU VM (40GB)


3.2.6 NEXTCLOUD Server
-----------------------
Die Nextcloud erfreut sich ja großer Beliebtheit. Also wollen wir die 
weiter betreiben.

Vorschlag:
- Hostname: cloud.uugrn.org
- Software: Webserver, Nextcloud
- Hardware: 2 vCPU VM (40GB)


3.2.7 ETHERPAD Server
-----------------------
Etherpad war auch immer beliebt. Also weiter betreiben.

Vorschlag:
- Hostname: pad.uugrn.org
- Software: Webserver, Etherpad Lite
- Hardware: 1 vCPU VM (20GB)


3.2.8 DNS Server
-----------------------
Momentan läuft DNS auf Jail uug_uugrn mit und kümmert sich um alle UUGRN
und Mitglieder DNS Einträge. DNS soll nun eine eigene VM bekommen.

Ich würde vorschlagen hier auch letsencrypt laufen zu lassen und über
DNS challenge zu validieren. Hierfür brauchen wir eine clevere Lösung
wie die anderen VMs ihre Zertifikate sicher abholen können.

Alternativ: Jeder macht letsencrypt selber.

Vorschlag:
- Hostname: dns.uugrn.org
- Software: dns server, letsencrypt software
- Hardware: 1 vCPU VM (20GB)


3.3 Abschussliste
-----------------------
Momentan laufen einige Services/Jails, die wir nicht mehr benötigen.

- proxy:       Jede VM hängt direkt am Netz.
- mysql:       Kann bei Bedarf auf der VM laufen die es benötigt (löst
               die Abhängigkeit zu einem zentralen MySql Admin).
- news/status: Wurde nie gepflegt.
- acme:        Soll auf dem DNS Server laufen.
- cgiirc:      Wird das verwendet?


3.4 Admin-Aufgaben
-----------------------
Die Aufgabe der zukünftigen Admins wird sein die Services in ihrer 
Verantwortung zum Laufen zu bringen und am Laufen zu halten. Vorhandene
Daten sollten migriert werden (dort wo nötig).

Keiner muss hier eine Uptime Garantie abgeben und in Urlaub fahren dürft
ihr auch ;) Wir betreiben hier kein "Mission Critical" Infrastruktur,
daher könnt ihr das entspannt sehen.

Es wäre toll, wenn ihr eure Setups beim Fixme in Form eines Vortrags
vorstellen könntet. Bei Probleme findet ihr im IRC, der ML, Stammtisch
oder Fixme genug Hilfe.


5. Finanzierung
=======================

An den Mitgliedsbeiträgen wird sich nichts ändern. Als Maximalbudget 
haben wir genau das festgelegt, was wir momentan für Infrastruktur 
aufwenden. Wir werden ggf. auf Rücklagen zurückgreifen um beide
Infrastrukturen während des Migrationszeitraums am Laufen zu halten.


6. Nächste Schritte
=======================

Wir (aka Vorstand) werden uns darum kümmern, dass die VMs zur Verfügung
gestellt werden können. Damit werden wir zu Hetzner gehen.

Was die Mitglieder Jails/VMs angeht werden wir uns umschauen. 
Ideal wäre ein dedicated Server mit KVM oder serieller Konsole. Bei 
Hetzner kann man per Ticket kurzfristig KVM bekommen. Das reicht 
eigentlich aus, aber wir schauen mal ob es das irgendwo in besser gibt.

Zudem wollen wir nicht vergessen, dass Dwalin jetzt jahrelang unsere 
Server gehostet hat. Daher werden wir auch bei Ihm nach einem Angebot 
fragen.


------------------------------------------------------------------------

Ich hoffe diese Mail hat euch nicht erschlagen, sondern liefert euch die
nötige Transparenz zum aktuellen Stand. Ich hoffe ihr könnt die Lösung 
mittragen (oder euch zumindest mit ihr arrangieren ;))

Viele Grüße,
Stefan
