Egyszerű rpm adattár az Inotify és a webdav használatával
Ebben a bejegyzésben egy rpm műterméktárat fogunk megnézni egy egyszerű inotify + createrepo szkript segítségével. A műtermékek feltöltése a webdav-n keresztül történik az apache httpd használatával. Hogy miért apache httpd, azt a bejegyzés vége felé írjuk.
Tehát a megoldásnak meg kell felelnie a következő követelményeknek, ha csak RPM-tárolást szeretne szervezni:
Ingyenes
A csomag elérhetősége a tárban néhány másodperccel a műterméktárba való feltöltés után.
Műtárgyak benne SonaType Nexus blobban tárolva. Hirtelen áramszünet esetén nem tudja visszaállítani a blobot, ha nincs biztonsági másolata. Nálunk ez volt a hiba: 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. Blobot soha nem hozták vissza.
Alapértelmezés szerint az inotify-createrepo egy könyvtárat figyel /var/www/repos/rpm-repo/.
Ezt a könyvtárat módosíthatja a fájlban /etc/inotify-createrepo.conf.
Használat
Ha bármilyen fájlt ad hozzá egy könyvtárhoz /var/www/repos/rpm-repo/ Az inotifywait létrehoz egy fájlt /tmp/need_create. A run_createrepo függvény egy végtelen ciklusban fut, és figyeli a fájlt /tmp/need_create. Ha a fájl létezik, futtassa createrepo --update.
Ahhoz, hogy egy meglévő megoldásból magas rendelkezésre állást hozzon létre, szerintem használhat 2 kiszolgálót, a Keepalivedet a HA-hoz és az Lsyncd-t a műtermékek szinkronizálásához. Lsyncd - egy démon, amely figyeli a helyi könyvtár változásait, összesíti azokat, majd egy bizonyos idő elteltével az rsync elkezdi szinkronizálni őket. Részletek és beállítások a bejegyzésben találhatók "Egymilliárd fájl gyors szinkronizálása".
WebDav
A fájlok feltöltésének többféle módja van: SSH, NFS, WebDav. A WebDav modern és egyszerű lehetőségnek tűnik.
A WebDav esetében az Apache httpd-t fogjuk használni. Miért az Apache httpd 2020-ban és nem az nginx?
Automatizált eszközöket szeretnék használni az Nginx + modulok felépítéséhez (például Webdav).
Azt hiszem, az Apache httpd konfigurációjának többi részét maga fogja elvégezni.
Nginx az Apache előtt httpd
Az Apache-tól eltérően az Nginx eseményalapú kérésfeldolgozási modellt használ, ami azt jelenti, hogy tetszőleges számú klienshez csak egy HTTP-kiszolgálófolyamat szükséges. Használhatja az nginx-et és csökkentheti a szerver terhelését.
nginx-front.conf config. Szerintem a többi nginx konfigurációt magad fogod elvégezni.