Hallo zusammen, vor allem @baumhof, gerne aber auch @thomas und @ironiemix,
ich versuche gerade Ordnung in mein Hirn und in die linuxmuster-client Konfiguration zu bekommen. Dabei fallen mir ein paar Sachen auf, wenn ich mal den Stand von Holgers/Dominiks lmn-bionic-image (0320) hernehme und das linuxmuster-client-adsso Paket wie es momentan als Debian-Paket vorliegt und dann noch mein neues linuxmuster-client Paket hernehme:
Konfigurationen können an vier Stellen passieren:
- durch das Installieren des Pakets linuxmuster-client-adsso, fest im Paket
- „von außen“ durch linuxmuster-client und generische postsync.d Skripte und durch postsync-Daten, die mit paketiert ankommen.
- dadurch, dass das Image paketiert wurde und die Konfiguration eben schon drin ist
- LINBO (/etc/hostname)
Das sind zu viele Stellen an denen geschraubt wird. Da weiß keiner, wo man suchen soll. Gut, meistens muss man auch als Endanwender nicht suchen, nur die Supporter müssen das eben wissen.
Beispiel: ntp
- linuxmuster-client-adsso konfiguriert bei Aufruf „chrony.conf“
- Du, Holger, hast timesyncd.conf mit ins Paket reingenommen, was systemd-internes ntp konfiguriert.
- Mein linuxmuster-client Paket macht das jetzt eigentlich, in dem es timesyncd.conf als template nimmt und die serverip reinschreibt.
Aber eigentlich ist nur eines dieser vier Varianten nötig (Linbo lasse ich außen vor).
Ich schlage vor, dass wir das gut trennen. Mein Vorschlag:
linuxmuster-client-adsso
- beherbergt alle Templates, die im Paket an die jeweilige Schule angepasst werden müssen, außer es gibt einen Grund, dass sie im postsync gepatcht werden müssen.
- konfiguriert SSO (die Domänenanmeldung), konfiguiert die lightdm-Anmeldung, konfiguriert die mounts, usw. was es eben ja schon tut
- sollte beim ersten Mal aufgerufen werden können, sowie auch nachträglich, wenn das Paket aktualisiert wird, nicht aber der komplette client.
linuxmuster-client + postsync.d
- beherbergt alle Templates, die an die hosts angepasst werden müssen, z.B. weil der hostname ersetzt werden muss, oder weil durch Paketupdates Dateien immer wieder im Image überschrieben werden (geogebra-Beispiel)
- der Befehl
linuxmuster-client
konfiguriert das auf dem Server, einmalig nach Herunterladen eines neuen Clients oder immer wieder (wenn z.B. neue Dateien eingepflegt wurden)
An dieser Stelle: Seid ihr, die ihr das lest und versteht was ich meine, einverstanden?
Jetzt noch die konkreten Usecases:
- timesyncd.conf: irgendwie kam im Forum auf, dass der ntp nicht stimmt und natürlich laufen müsste, daher der Vorschlag timesyncd.conf zu konfigurieren. Allerdings gibt es eigentlich schon chronyd im Image, daher mir unklar, ob es beide geben muss/darf. Das timesyncd.conf kann man schon mit dem Image im postsync mitliefern, aber das sollte temporär sein, eigentlich sollte das als Bugfix nach
linuxmuster-client-adsso
gehen, dann installiert man sich das neue Debianpaket und führt -setup nochmal aus. Richtig? - geogebra: Jemand findet eine notwendige Änderung, die den hostnamen in der Datei erfordern oder die erfordern, dass Dateien im Image bei jedem Start gepatcht werden müssen. Geogebra z.B. wird häufig upgedatet von usern, dabei wird jedes mal die analytics.google Zeile wieder reingeschrieben, welche durch postsync dann wieder rausmuss. Diese Änderungen müssen als Bugfix ins debianpaket von
linuxmuster-client-servertools
fließen, damit man sich das auf dem Server installiert und erneuetlinuxmuster-client configure
ausführt. - mir ist klar, dass das alles eventuell auch über die Doku bzw. das Forum gehen kann, a la : hey, du installierst im Image das Paket xy, passt yz configuration oder passt äö im postsync an und dann machst du ein neues Image. Aber jeder der neu dazu kommt, müsste dann alle diese Änderungen nachvollziehen und man weiß am Ende nicht mehr wirklich wo sie herkommen.
Wenn das akzeptabel klingt, würde ich diese Seite in die Entwickler-Doku von den obig genannten Paketen übernehmen und versuchen das zu implementieren.
VG, Tobias
Der Vollständigkeit halber, die aktuell mir bekannten, mehr oder weniger notwendigen Konfigurationsdateien, die angefasst werden sollen:
im Paket, angepasst an Schule
/etc/chrony/chrony.conf
/etc/request-key.d/cifs.spnego.conf
/etc/gdm3/greeter.dconf-defaults
/etc/krb5.conf
/etc/lightdm/lightdm.conf.d/50-linuxmuster.conf
/etc/linuxmuster-client-adsso.conf
/etc/profile.d/linuxmuster-proxy.sh
/etc/security/pam_mount.conf.xml
/etc/samba/smb.conf
/etc/sssd/sssd.conf
/etc/systemd/timesyncd.conf
- /etc/krb5.keytab
/etc/linuxmuster-client/*
/etc/systemd/system/linuxmuster-client-adsso.service
/etc/cups/client.conf
/usr/local/bin/linuxmuster-mkimage.sh
/usr/local/bin/linuxmuster-mkimage-deploy.sh
außerhalb des Pakets, angepasst an hosts
linuxmuster-client/patchclass/common/root/.ssh/authorized_keys
linuxmuster-client/patchclass/common/passwords
linuxmuster-client/patchclass/common/postsync.d/00-lcst-fix-initrd
linuxmuster-client/patchclass/common/postsync.d/01-lcst-setlocalpasswords
linuxmuster-client/patchclass/common/postsync.d/03-lcst-fix-fstab
linuxmuster-client/patchclass/common/postsync.d/04-lcst-generate-hosts
linuxmuster-client/patchclass/common/postsync.d/09-lcst-fix-permissions
... geogebrapatch...
linuxmuster-client/patchclass/common/etc/ssh/sshd_config
linuxmuster-client/patchclass/common/etc/hosts
linuxmuster-client/patchclass/common/etc/fstab