Í þessari færslu munum við skoða rpm artifact repository með því að nota einfalt inotify + createrepo forskrift. Artifacts er hlaðið upp í gegnum webdav með apache httpd. Hvers vegna apache httpd verður skrifað undir lok færslunnar.
Þannig að lausnin verður að uppfylla eftirfarandi kröfur til að skipuleggja aðeins RPM geymslu:
Ókeypis
Aðgengi pakkans í geymslunni nokkrum sekúndum eftir að hlaðið er upp í gripageymsluna.
Munir í SonaType Nexus geymt í blobsi. Komi til skyndilegrar rafmagnsleysis muntu ekki geta endurheimt kubbinn ef þú ert ekki með öryggisafrit. Við fengum þessa villu: 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 náðist aldrei.
Sjálfgefið er að inotify-createrepo fylgist með möppu /var/www/repos/rpm-repo/.
Þú getur breytt þessari möppu í skránni /etc/inotify-createrepo.conf.
Nota
Þegar einhver skrá er bætt við möppu /var/www/repos/rpm-repo/ inotifywait mun búa til skrá /tmp/need_create. Run_createrepo aðgerðin keyrir í óendanlega lykkju og fylgist með skránni /tmp/need_create. Ef skráin er til skaltu keyra createrepo --update.
Til að gera mikið framboð úr núverandi lausn held ég að þú getir notað 2 netþjóna, Keepalived fyrir HA og Lsyncd fyrir samstillingu artifacts. Lsyncd - púkinn sem fylgist með breytingum á staðbundinni möppu, safnar þeim saman og eftir ákveðinn tíma byrjar rsync að samstilla þær. Upplýsingar og stillingar eru lýst í færslunni "Hröð samstilling á milljarði skráa".
webdav
Það eru nokkrar leiðir til að hlaða upp skrám: SSH, NFS, WebDav. WebDav virðist vera nútímalegur og einfaldur valkostur.
Fyrir WebDav munum við nota Apache httpd. Af hverju Apache httpd árið 2020 en ekki nginx?
Mig langar að nota sjálfvirk verkfæri til að byggja Nginx + einingar (til dæmis Webdav).
Ég held að þú munt gera restina af Apache httpd stillingunum sjálfur.
Nginx fyrir framan Apache httpd
Ólíkt Apache, notar Nginx atburðabundið beiðnivinnslulíkan, sem þýðir að aðeins eitt HTTP netþjónsferli er krafist fyrir hvaða fjölda viðskiptavina sem er. Þú getur notað nginx og minnkað álag á netþjóni.
nginx-front.conf stillingar. Ég held að þú munt gera restina af nginx stillingunum sjálfur.