Paprasta rpm saugykla naudojant „Inotify“ ir „webdav“.
Šiame įraše apžvelgsime rpm artefaktų saugyklą naudodami paprastą inotify + Createrepo scenarijų. Artefaktai įkeliami per webdav naudojant apache httpd. Kodėl apache httpd bus parašyta įrašo pabaigoje.
Taigi, sprendimas turi atitikti šiuos reikalavimus, kad būtų galima organizuoti tik RPM saugyklą:
Laisvas
Paketo prieinamumas saugykloje praėjus kelioms sekundėms po įkėlimo į artefaktų saugyklą.
Pulp Man atrodo per daug suprojektuotas sprendimas.
Artefaktai viduje SonaType Nexus saugomi blob. Staigaus elektros energijos tiekimo nutraukimo atveju negalėsite atkurti blob, jei neturėsite atsarginės kopijos. Mes turėjome šią klaidą: 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. Blobas niekada nebuvo atgautas.
Pagal numatytuosius nustatymus inotify-createrepo stebi katalogą /var/www/repos/rpm-repo/.
Šį katalogą galite pakeisti faile /etc/inotify-createrepo.conf.
Naudoti
Pridedant bet kokį failą į katalogą /var/www/repos/rpm-repo/ inotifywait sukurs failą /tmp/need_create. Funkcija run_createrepo veikia begaliniu ciklu ir stebi failą /tmp/need_create. Jei failas egzistuoja, paleiskite createrepo --update.
Jei norite užtikrinti aukštą esamo sprendimo prieinamumą, manau, kad galite naudoti 2 serverius: „Keepalived“, skirtą HA, ir „Lsyncd“ artefaktų sinchronizavimui. Lsyncd - demonas, kuris stebi pokyčius vietiniame kataloge, juos sujungia ir po tam tikro laiko rsync pradeda juos sinchronizuoti. Išsami informacija ir nustatymai aprašyti įraše "Greitas milijardo failų sinchronizavimas".
WebDav
Yra keli failų įkėlimo būdai: SSH, NFS, WebDav. „WebDav“ atrodo modernus ir paprastas pasirinkimas.
WebDav naudosime Apache httpd. Kodėl „Apache httpd“ 2020 m., o ne „nginx“?
Norėčiau naudoti automatizuotus įrankius Nginx + moduliams kurti (pavyzdžiui, Webdav).
Manau, kad likusią Apache httpd konfigūraciją atliksite patys.
Nginx priešais Apache httpd
Skirtingai nuo „Apache“, „Nginx“ naudoja įvykiais pagrįstą užklausų apdorojimo modelį, o tai reiškia, kad bet kuriam klientų skaičiui reikalingas tik vienas HTTP serverio procesas. Galite naudoti nginx ir sumažinti serverio apkrovą.
nginx-front.conf konfig. Manau, kad likusią nginx konfigūraciją atliksite patys.