ProHoster > Blog > Uprava > Preprost repozitorij rpm z uporabo Inotify in webdav
Preprost repozitorij rpm z uporabo Inotify in webdav
V tej objavi si bomo ogledali shranjevanje artefaktov rpm z uporabo preprostega skripta z inotify + createrepo. Nalaganje artefaktov poteka prek webdav z uporabo apache httpd. Zakaj apache httpd bo napisano proti koncu objave.
Rešitev mora torej izpolnjevati naslednje zahteve za organiziranje samo pomnilnika RPM:
Brezplačno
Razpoložljivost paketa v repozitoriju nekaj sekund po nalaganju v repozitorij artefaktov.
Artefakti v SonaType Nexus so shranjeni v blobu. Če pride do nenadnega izpada električne energije, ne boste mogli obnoviti bloba, če nimate varnostne kopije. Imeli smo to napako: 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 ni bil nikoli obnovljen.
Ta imenik lahko spremenite v datoteki /etc/inotify-createrepo.conf.
Uporaba
Pri dodajanju katere koli datoteke v imenik /var/www/repos/rpm-repo/ inotifywait bo ustvaril datoteko /tmp/need_create. Funkcija run_createrepo teče v neskončni zanki in spremlja datoteko /tmp/need_create. Če datoteka obstaja, se zažene createrepo --update.
Če želite iz obstoječe rešitve narediti visoko razpoložljivost, mislim, da lahko uporabite 2 strežnika, Keepalived za HA in Lsyncd za sinhronizacijo artefaktov. Lsyncd - demon, ki spremlja spremembe v lokalnem imeniku, jih združuje in po določenem času jih rsync začne sinhronizirati. Podrobnosti in nastavitev so opisane v objavi "Hitra sinhronizacija milijarde datotek".
WebDAV
Datoteke lahko naložite na več načinov: SSH, NFS, WebDav. WebDav se zdi sodobna in preprosta možnost.
Za WebDav bomo uporabili Apache httpd. Zakaj Apache httpd leta 2020 in ne nginx?
Rad bi uporabil avtomatizirana orodja za izdelavo modulov Nginx + (na primer Webdav).
Mislim, da lahko preostale nastavitve Apache httpd naredite sami.
Nginx pred Apache httpd
Za razliko od Apache, Nginx uporablja model obdelave zahtev na podlagi dogodkov, ki zahteva samo en proces strežnika HTTP za poljubno število odjemalcev. Uporabite lahko nginx in zmanjšate obremenitev strežnika.
Konfiguracija nginx-front.conf. Mislim, da lahko preostanek nastavitev nginx naredite sami.