Zentrale Softwareverwaltung mit individuellen Ausnahmen

Probleme mit Samba, NFS, FTP und Co.
Antworten
Benutzeravatar
Tintom
Moderator
Beiträge: 3026
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von Tintom » 26.05.2021 15:30:34

Hallo zusammen,
ich habe hier ein Netzwerk aus mehreren physischen Rechnern, teilweise jeweils mit mehreren virtuellen Maschinen darauf. Auf allen physischen/virtuellen Maschinen läuft Debian (stable).
Ich möchte nun die Bereitstellung der Software etwas effizienter gestalten, d.h. ich möchte, dass alle Clienten von einem zentralen Punkt (NFS-Server ?) ihr Image zum Booten beziehen. Dieses Image soll ein Basissystem sein, in dem die grundlegenden Pakete enthalten sind. Gleichzeitig sollen die Maschinen jedoch individuell nach Einsatzzweck ihre benötigte Software laden.

Ich will es mal anhand einer Tabelle erläutern:

Code: Alles auswählen

Maschine/Paketauswahl:	libc6    kodi   libreoffice
Video-PC:	        X        X
Arbeits-PC:             X		X
Pakete im Basis-Image (z.B. libc6) sollen für alle Systeme identisch sein. Der Video-PC lädt alle Pakete des Basis-Image und zudem noch das Programm kodi. Der Arbeits-PC lädt ebenso alle Pakete des Basis-Image und zudem das Paket libreoffice. Arbeits-PC und Video-PC sollen jedoch keinen Zugriff auf nicht exklusiv für sie installierte Pakete haben, d.h. ich möchte kein „One-Size-fits-all“-Image, in dem alle Software installiert ist, sondern je nach Nutzungsszenario die jeweilige Maschine Zugriff auf die entsprechende Software haben soll.

Das Sahnehäubchen wäre dann noch ein Skript, welches erkennt, ob ein Paket von zwei oder mehr Maschinen benötigt wird und es dann automatisch in das Basis-Image installiert, damit die jeweiligen Maschinen es nicht vorhalten müssen.

Ich füttere jetzt seit einigen Tagen die Suchmaschine meines Vertrauens mit allen möglichen Begriffen aber fündig bin ich nicht geworden.

Daher erstmal die Frage an die Runde: Kennt ihr so etwas vergleichbares? Nach welchen Begriffen müsste ich weiter suchen?

Benutzeravatar
shoening
Beiträge: 896
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von shoening » 26.05.2021 15:38:28

Hi,

wie wäre es mit ansible oder ähnlichen Produkten zur Softwareverteilung?

Viele Grüße
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

Benutzeravatar
heisenberg
Beiträge: 3438
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von heisenberg » 26.05.2021 15:42:42

Grundsätzlich gibt es da die üblichen Verdächtigen zum Konfigurationsmanagement:

Saltstack, Chef, Ansible, Puppet, CFEngine, ...

Vielleicht auch noch FAI, was Rechner sowohl installieren als auch Softwareupdates durchführen kann.

Ansonsten kann ich mir so etwas auch ganz einfaches vorstellen wie das:

Auf dem NFS-Share liegen ein paar Textdateien mit dem Namen des Rechners. In dieser Textdatei sind dann Paketlisten, mit der man den apt der jeweiligen Maschine füttert(cronjob).

Das mit dem Sahnehäubchen-Script wäre dann eine individuelle Aufgabe für Dich.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
Tintom
Moderator
Beiträge: 3026
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von Tintom » 27.05.2021 10:39:59

Danke für eure Antworten!
Von FAI hatte ich schon einmal gehört, die restlichen sind mir alle neu.
Ich lese mich mal ein und melde mich wieder.

Benutzeravatar
heisenberg
Beiträge: 3438
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von heisenberg » 27.05.2021 11:27:21

Eine andere Idee wäre es, die Abhängigkeiten mittels eigener Debian-Pakete abzubilden. Das hat keine Inhalte sondern nur Abhängigkeiten.

Beispiel:
  • rechner1-packages Abhängigkeiten: video-editing office
  • rechner2-packages Abhängigkeiten: audio-workstation network-analyzer
  • video-editing Abhängigkeiten: ffmpeg mplayer kdeenlive ...
  • office Abhängigkeiten: libreoffice-writer libreoffice-calc ...
  • network-analyzer Abhängigkeiten: tcpdump wireshark nmap
Wenn diese Pakete dann per Repository eingebunden werden, dann kannst Du einfach per apt install video-editing Gruppen von Paketen installieren oder den Rechner per apt install $(hostname)-packages den Rechner auf den aktuellen Stand bringen.

Ich persönlich mag die Konfigurationsmanagementwerkzeuge allesamt nicht, weil die einfach sehr viel Komplexität reinbringen. Komplexität des Aufbaus. Komplexität beim Upgrade. Natürlich macht das mitunter Spaß, sich mit neuen Techniken zu beschäftigen und die ganzen neuen, kleinen Rädchen zu erkunden an denen man damit drehen kann. Aber wieso nicht etwas nehmen, was ohnehin schon da ist?

Btw: Das ist auch der Ansatz den YADT gewählt hat(bzw. der, den ich mir von YADT abgeschaut habe) - eine mittlerweile nicht mehr weiterentwickelte Software.

Videos: https://www.youtube.com/user/yadtproject
Projektseite: https://www.yadt-project.org/
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

schwedenmann
Beiträge: 5522
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von schwedenmann » 27.05.2021 11:55:28

Hallo

zu den schon gesagten Lösungne hier auch och ein solches framework

https://www.rexify.org/

oder wenn es nur um SW Verteilung geht auch clusterssh. afaik hat das Terminal Terminator auch so eine eingebaute Fähigkeit wie clusterssh.


mfg
schwedenmann

P.S.

hatte ich fast vergessen m23 https://m23.sourceforge.io/PostNuke-0.7 ... /index.php

Benutzeravatar
hikaru
Moderator
Beiträge: 13557
Registriert: 09.04.2008 12:48:59

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von hikaru » 27.05.2021 11:58:54

heisenberg hat geschrieben: ↑ zum Beitrag ↑
27.05.2021 11:27:21
Eine andere Idee wäre es, die Abhängigkeiten mittels eigener Debian-Pakete abzubilden. Das hat keine Inhalte sondern nur Abhängigkeiten.
Für's Protokoll:
Im Debian-Sprech nennt man sowas ein Wiki-Artikel zum Thema Meta-Paket.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von eggy » 27.05.2021 12:08:09

@Tintom: sollen die Rechner nur einmal via Netz booten und das Image lokal installieren oder sollen sie jedesmal via pxe/nfs übers Netz booten?

Benutzeravatar
Tintom
Moderator
Beiträge: 3026
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von Tintom » 27.05.2021 22:45:42

Zunächst mal vielen Dank an alle für die ganzen Hinweise und Links!

Ich habe mir die Lösungen angeschaut und je tiefer ich einsteige, desto mehr kommen mir ähnliche Gedanken wie von @heisenberg:
heisenberg hat geschrieben: ↑ zum Beitrag ↑
27.05.2021 11:27:21
Komplexität des Aufbaus. Komplexität beim Upgrade.
Die Tools können weit mehr als das, was ich benötige. Beeindruckend, aber auch wieder viel neues zum lernen. Deshalb will ich die Idee mit den Konfigurationstools erst einmal hinten anstellen.
eggy hat geschrieben: ↑ zum Beitrag ↑
27.05.2021 12:08:09
@Tintom: sollen die Rechner nur einmal via Netz booten und das Image lokal installieren oder sollen sie jedesmal via pxe/nfs übers Netz booten?
Gute Frage!
Ich wollte eigentlich eine reine Lösung über NFS, bis mir dann aufgefallen ist, dass auch zwei Laptops vorhanden sind, die auch mal offline genutzt werden. Ich komme also nicht herum (zumindest bei den Laptops) auch lokal ein Image bereitzuhalten, damit sie booten können.

Gedanklich würde das etwa so aussehen:

NFS-Server
--> Laptops -> Root-FS von NFS-Server wenn vorhanden. Wenn nicht ein lokales Image auf der Festplatte starten.
--> alle anderen Maschinen: Root-FS von NFS-Server

Alle Maschinen booten das Root-FS von NFS lesend. Schreiboperationen versuche ich mittels overlayfs und einem zweiten Dateisystem entweder als reines tmpfs oder persistent auf dem NFS-Server abzufangen. Ich tendiere vorerst zu Letzterem, auf tmpfs wechseln kann ich später immer noch.

Das sollte mit einem Skript für die Initrd umzusetzen sein.

Wenn ich das habe, kann ich mir als nächstes Überlegen wie ich die Softwarezuteilung für die einzelnen Maschinen realisieren will.

Colttt
Beiträge: 2983
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von Colttt » 28.05.2021 10:05:31

Du hast dann aber ein SPOF(single point of failure) wenn der NFS server mal nicht erreichbar ist können die Desktop-PCs nicht starten und die Mitarbeiter auch nicht arbeiten, zudem braucht der NFS-Server etwas bums, denn wenn alle morgens um 8Uhr anfangen ihre PCs zu starten kann der schnell zum flaschenhals werden, oder das Netzwerk.

Schau die FAI oder M23 an. Ich kenne nur FAI und hab es auch mal benutzt. Es kann von super simplen sachen bis hochkomplexe sachen alles machen. Die Einarbeitung hält sich auch in grenzen, zumindest für die einfachen Dinge.
Debian-Nutzer :D

ZABBIX Certified Specialist

Benutzeravatar
heisenberg
Beiträge: 3438
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von heisenberg » 28.05.2021 15:29:24

Das Sahnehäubchen wäre dann noch ein Skript, welches erkennt, ob ein Paket von zwei oder mehr Maschinen benötigt wird und es dann automatisch in das Basis-Image installiert, damit die jeweiligen Maschinen es nicht vorhalten müssen.
Das wäre dann auch recht einfach. Du sammelst regelmässig die Paketliste und ermittelst alle Pakete, die öfter als X Mal in Verwendung sind. Das sind dann Deine Pakete des Basisimages.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
heisenberg
Beiträge: 3438
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von heisenberg » 21.06.2021 17:31:01

Hier mal ein Beispiel, wie man ein simples Metapaket baut:

Diese Verzeichnisstrukur braucht man:

Code: Alles auswählen

.
└── pkg
    └── megabert-network-tools	(=Paketname)
        └── DEBIAN
            └── control		(=einzige Konfigurationsdatei, die zwingend vorhanden sein muss)

3 directories, 1 file
Das ist der Inhalt von control:

Code: Alles auswählen

Package: megabert-network-tools
Version: 0.0.1-0
Section: misc
Priority: extra
Architecture: all
Depends: nmap, tcpdump, nload, netcat, net-tools, bind9-utils, dnsutils, iperf, traceroute
Installed-Size: 8
Maintainer: Megabert <megabert@nodomain.zz>
Description: A collection of useful CLI network tools.
 This is a metapackage which is pulling various network 
 useful tools for the command line.
Jetzt kann man das Metapaket auch schon bauen.

Code: Alles auswählen

$ cd pkg
$ dpkg -b megabert-network-tools
dpkg-deb: building package 'megabert-network-tools' in 'megabert-network-tools.deb'.
Installation

Code: Alles auswählen

# apt install ./megabert-network-tools.deb
Deinstallation

Code: Alles auswählen

# apt remove megabert-network-tools
#
# ---- und die Abhängigkeiten auch wieder entfernen (alle installierten und 
# ---- nicht mehr benötigten Abhängigkeiten, nicht nur die von diesem Paket)
#
# apt autoremove
#
# für die Schreibfaulen gehen die beiden Befehle noch in einem(Das Minus hinter dem Paketnamen ist wichtig!):
#
# apt autoremove megabert-network-tools-
#
Wenn man jetzt noch einen eigenen Repository-Server aufsetzt(Geht auch recht flott. Anleitung z. B. hier: https://michael.stapelberg.ch/posts/200 ... epository/), dann hat man das Paket via Netzwerk installierbar.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
Tintom
Moderator
Beiträge: 3026
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Zentrale Softwareverwaltung mit individuellen Ausnahmen

Beitrag von Tintom » 21.06.2021 19:11:39

Danke für das Feedback! Ich spiele meine Anforderungen mit ein paar virt. Maschinen durch und werde dann hier berichten oder ggf. einen Eintrag im Wiki machen, falls es ausarten sollte. :)

Antworten