Yn y swydd hon, byddwn yn edrych ar ystorfa arteffact rpm gan ddefnyddio sgript inotify + createrepo syml. Mae arteffactau'n cael eu huwchlwytho trwy webdav gan ddefnyddio apache httpd. Pam bydd apache httpd yn cael ei ysgrifennu tua diwedd y post.
Felly, rhaid i'r datrysiad fodloni'r gofynion canlynol ar gyfer trefnu storfa RPM yn unig:
Am ddim
Argaeledd y pecyn yn yr ystorfa ychydig eiliadau ar Γ΄l ei uwchlwytho i'r ystorfa arteffactau.
Pulp Mae'n ymddangos fel ateb wedi'i or-beiriannu i mi.
Arteffactau mewn SonaType Nexus storio mewn blob. Os bydd toriad pΕ΅er yn sydyn, ni fyddwch yn gallu adfer y blob os nad oes gennych gopi wrth gefn. Cawsom y camgymeriad hwn: 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. Ni chafodd Blob ei adennill erioed.
Yn ddiofyn mae inotify-createrepo yn monitro cyfeiriadur /var/www/repos/rpm-repo/.
Gallwch newid y cyfeiriadur hwn yn y ffeil /etc/inotify-createrepo.conf.
Defnyddio
Wrth ychwanegu unrhyw ffeil i gyfeiriadur /var/www/repos/rpm-repo/ Bydd inotifywait yn creu ffeil /tmp/need_create. Mae'r swyddogaeth run_createrepo yn rhedeg mewn dolen ddiddiwedd ac yn monitro'r ffeil /tmp/need_create. Os yw'r ffeil yn bodoli, yna rhedeg createrepo --update.
Er mwyn gwneud argaeledd uchel allan o ddatrysiad sy'n bodoli eisoes, rwy'n credu y gallwch chi ddefnyddio 2 weinydd, Keepvived ar gyfer HA a Lsyncd ar gyfer cydamseru arteffactau. Lsyncd - daemon sy'n monitro newidiadau yn y cyfeiriadur lleol, yn eu hagregu, ac ar Γ΄l amser penodol, mae rsync yn dechrau eu cydamseru. Disgrifir manylion a gosodiadau yn y post "Cydamseru cyflym o biliwn o ffeiliau".
GweDav
Mae sawl ffordd o uwchlwytho ffeiliau: SSH, NFS, WebDav. Ymddengys bod WebDav yn opsiwn modern a syml.
Ar gyfer WebDav, byddwn yn defnyddio Apache httpd. Pam Apache httpd yn 2020 ac nid nginx?
Hoffwn ddefnyddio offer awtomataidd ar gyfer adeiladu modiwlau Nginx + (er enghraifft, Webdav).
Rwy'n credu y byddwch chi'n gwneud gweddill cyfluniad Apache httpd eich hun.
Nginx o flaen Apache httpd
Yn wahanol i Apache, mae Nginx yn defnyddio model prosesu ceisiadau yn seiliedig ar ddigwyddiad, sy'n golygu mai dim ond un broses gweinydd HTTP sydd ei angen ar gyfer unrhyw nifer o gleientiaid. Gallwch ddefnyddio nginx a lleihau llwyth gweinydd.
nginx-front.conf config. Rwy'n credu y byddwch chi'n gwneud gweddill y cyfluniad nginx eich hun.