Hazina rahisi ya rpm kwa kutumia Inotify na webdav
Katika chapisho hili, tutaangalia hazina ya vizalia vya rpm kwa kutumia hati rahisi ya inotify + createrepo. Vizalia vya programu hupakiwa kupitia webdav kwa kutumia apache httpd. Kwa nini apache httpd itaandikwa hadi mwisho wa chapisho.
Kwa hivyo, suluhisho lazima likidhi mahitaji yafuatayo ya kuandaa uhifadhi wa RPM tu:
Bure
Upatikanaji wa kifurushi kwenye ghala sekunde chache baada ya kupakiwa kwenye hazina ya vizalia vya programu.
Pulp Inaonekana kama suluhisho lililobuniwa zaidi kwangu.
Vipengee ndani SonaType Nexus kuhifadhiwa katika blob. Katika tukio la kukatika kwa umeme kwa ghafla, hutaweza kurejesha blob ikiwa huna chelezo. Tulikuwa na hitilafu hii: 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 haikupatikana tena.
Kwa chaguo-msingi inotify-createrepo inafuatilia saraka /var/www/repos/rpm-repo/.
Unaweza kubadilisha saraka hii kwenye faili /etc/inotify-createrepo.conf.
Matumizi ya
Wakati wa kuongeza faili yoyote kwenye saraka /var/www/repos/rpm-repo/ inotifywait itaunda faili /tmp/need_create. Kitendakazi cha run_createrepo kinaendeshwa kwa kitanzi kisicho na kikomo na hufuatilia faili /tmp/need_create. Ikiwa faili iko, basi endesha createrepo --update.
Ili kupata upatikanaji wa juu kutoka kwa suluhisho lililopo, nadhani unaweza kutumia seva 2, Keepalived kwa HA na Lsyncd kwa maingiliano ya vizalia vya programu. Lsyncd - daemon ambayo inafuatilia mabadiliko katika saraka ya ndani, inakusanya, na baada ya muda fulani, rsync huanza kusawazisha. Maelezo na mipangilio imeelezewa katika chapisho "Usawazishaji wa haraka wa faili bilioni".
webdav
Kuna njia kadhaa za kupakia faili: SSH, NFS, WebDav. WebDav inaonekana kuwa chaguo la kisasa na rahisi.
Kwa WebDav, tutatumia Apache httpd. Kwa nini Apache httpd mnamo 2020 na sio nginx?
Ningependa kutumia zana za kiotomatiki za kujenga moduli za Nginx + (kwa mfano, Webdav).
Nadhani utafanya usanidi uliobaki wa Apache httpd mwenyewe.
Nginx mbele ya Apache httpd
Tofauti na Apache, Nginx hutumia mfano wa usindikaji wa ombi la tukio, ambayo inamaanisha kuwa mchakato mmoja tu wa seva ya HTTP unahitajika kwa idadi yoyote ya wateja. Unaweza kutumia nginx na kupunguza mzigo wa seva.
usanidi wa nginx-front.conf. Nadhani utafanya usanidi uliobaki wa nginx mwenyewe.