An dësem Post kucke mir d'rpm Artefaktlagerung mat engem einfachen Skript mat inotify + createrepo. Eroplueden vun Artefakte gëtt iwwer Webdav mat Apache httpd duerchgefouert. Firwat Apache httpd gëtt um Enn vum Post geschriwwe ginn.
Also, d'Léisung muss déi folgend Ufuerderunge erfëllen fir nëmmen RPM-Späichere ze organiséieren:
Gratis
Disponibilitéit vum Package am Repository e puer Sekonnen nom Eroplueden an den Artefakt Repository.
Lagerung an SonaType Nexus oder Pulp vill Zorte vun artifacts féiert zu der Tatsaach, datt SonaType Nexus oder Pulp ginn engem eenzege Punkt vun Echec.
Pulp Schéngt fir mech wéi eng iwwerkomplizéiert Léisung.
Artefakter an SonaType Nexus sinn am Blob gespäichert. Wann et e plötzlechen Stroumausfall ass, kënnt Dir de Blob net restauréieren wann Dir kee Backup hutt. Mir haten dëse Feeler: ERROR [ForkJoinPool.commonPool-worker-2] *SYSTEM [com.orientechnologies.orient.core.storage](http://com.orientechnologies.orient.core.storage/).fs.OFileClassic - $ANSI{green {db=security}} Error during data read for file 'privilege_5.pcl' 1-th attempt [java.io](http://java.io/).IOException: Bad address. Blob gouf ni restauréiert.
Par défaut iwwerwaacht inotify-createrepo den Verzeechnes /var/www/repos/rpm-repo/.
Dir kënnt dëse Verzeechnes an der Datei änneren /etc/inotify-createrepo.conf.
Benotzt
Wann Dir eng Datei an e Verzeichnis bäidréit /var/www/repos/rpm-repo/ inotifywait wäert d'Datei erstellen /tmp/need_create. D'run_createrepo Funktioun leeft an enger endloser Loop a iwwerwaacht d'Datei /tmp/need_create. Wann d'Datei existéiert, leeft se createrepo --update.
Fir eng héich Disponibilitéit vun enger existéierender Léisung ze maachen, mengen ech, Dir kënnt 2 Server benotzen, Keepalved fir HA an Lsyncd fir Artefakte ze synchroniséieren. Lsyncd - en Daemon deen Ännerungen an engem lokalen Verzeichnis iwwerwaacht, se aggregéiert, an no enger gewësser Zäit fänkt rsync un ze synchroniséieren. Detailer an Opstellung sinn am Post beschriwwen "Schnell Synchroniséierung vun enger Milliard Dateien".
WebDav
Dir kënnt Dateien op verschidde Weeër eropluede: SSH, NFS, WebDav. WebDav schéngt eng modern an einfach Optioun ze sinn.
Fir WebDav wäerte mir Apache httpd benotzen. Firwat Apache httpd am Joer 2020 an net nginx?
Ech wéilt automatiséiert Tools benotze fir Nginx + Moduler ze bauen (zum Beispill Webdav).
Ech mengen Dir kënnt de Rescht vum Apache httpd Setup selwer maachen.
Nginx virun Apache httpd
Am Géigesaz zu Apache benotzt Nginx en Event-baséiert Ufroveraarbechtungsmodell, deen nëmmen een HTTP-Serverprozess fir all Zuel vu Clienten erfuerdert. Dir kënnt nginx benotzen an d'Laascht op de Server reduzéieren.
Configuréieren nginx-front.conf. Ech mengen Dir kënnt de Rescht vum nginx-Setup selwer maachen.