Depo e thjeshtë rpm duke përdorur Inotify dhe webdav
Në këtë postim, ne do të shikojmë një depo artifakti rpm duke përdorur një skript të thjeshtë inotify + createrepo. Artifaktet ngarkohen përmes webdav duke përdorur apache httpd. Pse apache httpd do të shkruhet në fund të postimit.
Pra, zgjidhja duhet të plotësojë kërkesat e mëposhtme për organizimin e ruajtjes vetëm të RPM:
Falas
Disponueshmëria e paketës në depo disa sekonda pas ngarkimit në depon e objekteve.
Tul Më duket si një zgjidhje e mbi-inxhinieruar për mua.
Artefakte në SonaType Nexus të ruajtura në blob. Në rast të një ndërprerjeje të papritur të energjisë, nuk do të jeni në gjendje të rivendosni blobin nëse nuk keni një rezervë. Ne patëm këtë gabim: 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 nuk u gjet kurrë.
Si parazgjedhje inotify-createrepo monitoron një direktori /var/www/repos/rpm-repo/.
Ju mund ta ndryshoni këtë direktori në skedar /etc/inotify-createrepo.conf.
Përdorim
Kur shtoni ndonjë skedar në një direktori /var/www/repos/rpm-repo/ inotifywait do të krijojë një skedar /tmp/need_create. Funksioni run_createrepo funksionon në një lak të pafund dhe monitoron skedarin /tmp/need_create. Nëse skedari ekziston, atëherë ekzekutojeni createrepo --update.
Për të bërë disponueshmëri të lartë nga një zgjidhje ekzistuese, mendoj se mund të përdorni 2 serverë, Keepalived për HA dhe Lsyncd për sinkronizimin e objekteve. Lsyncd - një demon që monitoron ndryshimet në drejtorinë lokale, i grumbullon ato dhe pas një kohe të caktuar, rsync fillon t'i sinkronizojë ato. Detajet dhe cilësimet përshkruhen në postim "Sinkronizimi i shpejtë i një miliard skedarësh".
webdav
Ka disa mënyra për të ngarkuar skedarë: SSH, NFS, WebDav. WebDav duket të jetë një opsion modern dhe i thjeshtë.
Për WebDav, ne do të përdorim Apache httpd. Pse Apache httpd në 2020 dhe jo nginx?
Do të doja të përdorja mjete të automatizuara për ndërtimin e moduleve Nginx + (për shembull, Webdav).
Unë mendoj se ju do ta bëni vetë pjesën tjetër të konfigurimit httpd të Apache.
Nginx përballë Apache httpd
Ndryshe nga Apache, Nginx përdor një model të përpunimit të kërkesave të bazuara në ngjarje, që do të thotë se kërkohet vetëm një proces i serverit HTTP për çdo numër klientësh. Ju mund të përdorni nginx dhe të zvogëloni ngarkesën e serverit.
Konfigurimi nginx-front.conf. Unë mendoj se pjesën tjetër të konfigurimit të nginx do ta bëni vetë.