Ich stehe vor der Aufgabe eine Software auf Debian hin und wieder updaten zu müssen oder updaten zu lassen. Bisher lief das immer über SSH und dann wurde per dpkg aktualisiert. Das Problem dabei ist natürlich, dass immer SSH zur Verfügung stehen muss und man schlüsselmanagement betreiben muss. Der PC selbst hat keinen Internetzugang, aber einen USB Zugang zum Anschließen von USB Sticks oder Festplatten. Nun soll das aber auch mal jemand ohne mein Beisein machen. Ich suche noch nach einer adäquaten Lösung. Meine erste Idee ist zwar den SSH zugang zu belassen aber eine GUI zum Update zu schreiben, die das per SSH dort hochlädt und installiert. Eine weitere Lösung könnte sein, dass man per HTTP oder FTP das deb Paket hochlädt und einen systemd Daemon am laufen hat, der immer das neuste Paket installiert. Wie wird so etwas in der Regel "professionell" gelöst wenn Systeme durch Benutzer geupdatet werden sollen? Wie macht man das wenn dabei auch noch Systemupdates duchgeführt werden sollen oder mal ein neues Paket benötigt wird aber keine Internetverbindung da ist?
(prx) A. K. schrieb: > Eigenen Repository-Server als Installationsquelle aufsetzen. Das Ding hat keine Internetverbindung aber man kann APT Repositories auch in ein lokales Dateisystem zeigen lassen. Schwierig würde das nur wenn zum Beispiel mal eine neue Abhängigkeit meines Programms auf dem PC hinzukommt. Dann müsste man die mit ausliefern und da fällt mir keine Lösung ein wie das gehen soll, denn die Debian Pakete haben teils sehr verzweigte abhängigkeiten.
Es ist möglich als Quelle für die Paketverwaltung ein Laufwerk oder ein Verzeichnis hinzuzunehmen. Siehe unter: https://wiki.ubuntuusers.de/sources.list/ Das Paket apt-file würde ich noch ergänzen. https://wiki.ubuntuusers.de/apt-file/
Beitrag #7417960 wurde vom Autor gelöscht.
Gustav G. schrieb: > (prx) A. K. schrieb: >> Eigenen Repository-Server als Installationsquelle aufsetzen. > > Das Ding hat keine Internetverbindung aber man kann APT Repositories > auch in ein lokales Dateisystem zeigen lassen. Wahrscheinlich meint prx einen eigenen mobilen Repository-Server als Installationsquelle aufsetzen. Z.B. einen Mini-PC mit ausreichend Festspeicherkapazität, der dann regelmäßig mit dem Debian-Server synchronisiert wird. Von Zeit zu Zeit den an den zu aktualisierenden Rechner per LAN anschließen und "sudo apt update; sudo apt upgrade", um alle installierten Pakete zu aktualisieren. Die apt sources.list so konfigurieren, dass apt auf dem per LAN angeschlossenem Rechner sucht.
Ich denke das ich gar keine schlechte Idee. Weiß jemand wie groß das komplette Debian Repository ist? Ich schätze das wird nicht klein sein. Wenn es unter 256GB ist kann man das auch noch wirtschaftlich einfach auf einen USB Stick packen inklusive seiner eigenen Repositories.
Alexander S. schrieb: > Z.B. einen Mini-PC mit ausreichend > Festspeicherkapazität, der dann regelmäßig mit dem Debian-Server > synchronisiert wird. Und das schafft auch ein RasPi, oder noch kleinerer Verwandter wie der Orange Pi Zero, wenn man das Debian-Repo selektiv fahren kann (keine Ahnung wie fein). Vorteil solcher Lösungen: Sie setzen auf dem normalen Update-Weg auf, benötigen keine Sonderlocken.
:
Bearbeitet durch User
Diese Doku könnte evtl. auch helfen, auch wenn sie schon älter ist: https://www.debian.org/doc/manuals/apt-offline/index.de.html https://packages.debian.org/stable/debmirror Gustav G. schrieb: > Weiß jemand wie groß das > komplette Debian Repository ist? https://www.debian.org/mirror/size
:
Bearbeitet durch User
Gustav G. schrieb: > Wie wird so etwas in der Regel "professionell" gelöst wenn Systeme durch > Benutzer geupdatet werden sollen? Wie macht man das wenn dabei auch noch > Systemupdates duchgeführt werden sollen oder mal ein neues Paket > benötigt wird aber keine Internetverbindung da ist? Gar nicht. ;-) Im professionellen Umfeld lässt man so etwas niemals von Benutzern ausführen. Stattdessen automatisiert man das mit den üblichen Tools wie Ansible, Cfengine, Chef, Muppet, Salt-Stack … Bei Ansible reicht dafür auch SSH als Zugang vollkommen aus, damit schiebt man zuerst das deb-File auf die remote-Kiste und löst danach die Installation aus. Und was bedeutet "keine Internetverbindung" genau? Nur inbound-SSH möglich? Oder darf die Kiste sich mit dem Admin-System (von dem aus du das bisher mit SSH machst) evtl. auch verbinden? Wenn du da kanonisch den Port 3142 freigeben kannst, dann könntest du auf dem Admin-System apt-cacher-ng installieren und vom remote-System als apt-Proxy ansprechen lassen (BTDT). Das macht das Leben viel einfacher (und erlaubt nebenbei auch das übliche daily apt-upgrade für sicherheitsrelevante Updates via unattended-upgrades).
Ralf D. schrieb: > Bei Ansible reicht dafür auch SSH als Zugang vollkommen aus, damit > schiebt man zuerst das deb-File auf die remote-Kiste und löst danach die > Installation aus. Aktuell macht er genau das doch schon, nur ohne den Umweg über Ansible.
Ansible ist eben auch nur ein SSH Zugang mit Skript. Vielleicht erkläre ich nochmal. Keines der Geräte hat Internetzugang. Weder der PC, der sich per SSH verbinden kann noch der SSH Server PC. Da ist lediglich eine Netzwerkschnitstelle dran mit fester IP Adresse. Es muss also alles wirklich offline passieren. Ich bin schon am überlegen einfach einen Docker Container zu benutzen oder das per AppImage zu machen.
Das Ding hat irgendeine Art von Netzwerk, sonst würde dein SSH Zugriff nicht funktionieren! Irgendwo in diesen Privaten Netzwerk (Nicht Internet) solltest du ein eigenes Debian Repository aufsetzen. Diese Repository, machst du nun allen deinen Debian Kisten bekannt und wenn du ein Paket Updaten willst reicht es diese in das Zentralen Repository zu tun. Die Rechner ohne Internet aber mit lokalem Netzwerk bekommen dann Ihre Updates per apt update/apt upgrade. btw, wenn du schon dabei bist, solltest du dir auch gleiche noch ein Mirror der Offiziellen Debian Repository, einrichten. Dann klappt das auch mit den neuen abhänigkeiten. Wie du denn Mirror aktuelle hältst, überlasse ich dir, aber auch ein System ohne Internet braucht Sicherheitsupdate (nicht nur von der Software, welche du bereitstellst) Last but not least Profis verlassen sich nicht darauf, dass Ihre Benutzer selbst updaten! Sie haben eine Orchestrierung im Einsatz, welche jeden Rechner auf einen definierten Stand bringt. Ich persönlich habe bei meinem System gerne einen PXE-Server laufen, der Debian mithilfe einer preseed Datei als Debian SSH Server installiert. Danach wird der Rechner je nach Rolle mit ein paar Ansible Skripten Grund konfiguriert. Teil meiner Konfiguration ist es auch, mit Icinga zu überwachen, ob die Pakete aktuell sind (ich weiß, aptcron würde es auch machen). Weil meine Software über Debian Repositorys verteilt wird, ist ein System update mit apt update /apt upgrade in der Regel einfach gemacht. Ich benutze aber dennoch ein Ansible Playbook hierfür, da so gleich einen Überblick bekomme, wenn es auf ein paar Computer Probleme gab.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.