In questu post, guardemu un repository di artefatti rpm utilizendu un script inotify + createrepo simplice. L'artefatti sò caricati via webdav utilizendu apache httpd. Perchè apache httpd serà scrittu versu a fine di u post.
Dunque, a suluzione deve risponde à i seguenti requisiti per urganizà solu u almacenamentu RPM:
Libera
Disponibilità di u pacchettu in u repository uni pochi seconde dopu a carica in u repository di l'artefacti.
Pulp Mi pare una soluzione sopra ingegneria per mè.
Artefatti in SonaType Nexus conservatu in blob. In l'eventuali di una interrupzione brusca di l'energia, ùn sarete micca capaci di restaurà u blob se ùn avete micca una copia di salvezza. Avemu avutu questu errore: 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. U blob ùn hè mai statu recuperatu.
Per difettu inotify-createrepo monitoreghja un annuariu /var/www/repos/rpm-repo/.
Pudete cambià stu cartulare in u schedariu /etc/inotify-createrepo.conf.
Usu
Quandu aghjunghje ogni schedariu à un cartulare /var/www/repos/rpm-repo/ inotifywait creà un schedariu /tmp/need_create. A funzione run_createrepo funziona in un ciclu infinitu è monitoreghja u schedariu /tmp/need_create. Se u schedariu esiste, allora eseguite createrepo --update.
Per fà una alta dispunibilità da una suluzione esistente, pensu chì pudete aduprà 2 servitori, Keepalived per HA è Lsyncd per a sincronizazione di l'artefact. Lsyncd - un daemon chì monitorizza i cambiamenti in u repertoriu lucale, l'aggrega, è dopu un certu tempu, rsync cumencia à sincronizà. I dettagli è i paràmetri sò descritti in u post "Sincronizazione rapida di un miliardo di schedari".
webdav
Ci hè parechje manere di carricà i schedari: SSH, NFS, WebDav. WebDav pare esse una opzione muderna è simplice.
Per WebDav, avemu aduprà Apache httpd. Perchè Apache httpd in 2020 è micca nginx?
Mi piacerebbe aduprà arnesi automatizati per custruisce moduli Nginx + (per esempiu, Webdav).
Pensu chì fate u restu di a cunfigurazione Apache httpd stessu.
Nginx davanti à Apache httpd
A cuntrariu d'Apache, Nginx usa un mudellu di prucessu di dumanda basatu in l'avvenimentu, chì significa chì solu un prucessu di u servitore HTTP hè necessariu per ogni numeru di clienti. Pudete aduprà nginx è riduce a carica di u servitore.
nginx-front.conf config. Pensu chì fate u restu di a cunfigurazione nginx sè stessu.