ProHoster > Blog > İdarə > Inotify və webdav istifadə edərək sadə rpm deposu
Inotify və webdav istifadə edərək sadə rpm deposu
Bu yazıda sadə inotify + createrepo skriptindən istifadə edərək rpm artefakt anbarına baxacağıq. Artefaktlar apache httpd istifadə edərək webdav vasitəsilə yüklənir. Niyə apache httpd yazının sonuna yaxın yazılacaq.
Beləliklə, həll yalnız RPM yaddaşının təşkili üçün aşağıdakı tələblərə cavab verməlidir:
pulsuz
Artefakt anbarına yükləndikdən bir neçə saniyə sonra paketin repozitoriyada mövcudluğu.
Lət Mənə həddən artıq dizayn edilmiş bir həll kimi görünür.
Əsərlər SonaType Nexus blobda saxlanılır. Qəfil elektrik kəsilməsi halında, ehtiyat nüsxəniz yoxdursa, blob bərpa edə bilməyəcəksiniz. Bizdə bu xəta var: 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 heç vaxt bərpa olunmadı.
Varsayılan olaraq inotify-createrepo kataloqa nəzarət edir /var/www/repos/rpm-repo/.
Bu qovluğu faylda dəyişə bilərsiniz /etc/inotify-createrepo.conf.
Istifadə
Kataloqa hər hansı bir fayl əlavə edərkən /var/www/repos/rpm-repo/ inotifywait fayl yaradacaq /tmp/need_create. run_createrepo funksiyası sonsuz döngədə işləyir və fayla nəzarət edir /tmp/need_create. Fayl varsa, işə salın createrepo --update.
Mövcud həlldən yüksək əlçatanlıq əldə etmək üçün məncə, HA üçün Keepalived və artefakt sinxronizasiyası üçün Lsyncd olmaqla 2 serverdən istifadə edə bilərsiniz. Lsyncd - yerli qovluqdakı dəyişiklikləri izləyən, onları birləşdirən və müəyyən müddətdən sonra rsync onları sinxronlaşdırmağa başlayan demon. Təfərrüatlar və parametrlər postda təsvir edilmişdir "Bir milyard faylın sürətli sinxronizasiyası".
VebDav
Faylları yükləməyin bir neçə yolu var: SSH, NFS, WebDav. WebDav müasir və sadə seçim kimi görünür.
WebDav üçün biz Apache httpd istifadə edəcəyik. Niyə nginx deyil, 2020-ci ildə Apache httpd?
Nginx + modullarının qurulması üçün avtomatlaşdırılmış vasitələrdən istifadə etmək istərdim (məsələn, Webdav).
Düşünürəm ki, siz Apache httpd konfiqurasiyasının qalan hissəsini özünüz edəcəksiniz.
Nginx Apache qarşısında httpd
Apache-dən fərqli olaraq, Nginx hadisəyə əsaslanan sorğu emalı modelindən istifadə edir, yəni istənilən sayda müştəri üçün yalnız bir HTTP server prosesi tələb olunur. Siz nginx-dən istifadə edə və server yükünü azalda bilərsiniz.
nginx-front.conf konfiqurasiyası. Düşünürəm ki, nginx konfiqurasiyasının qalan hissəsini özünüz edəcəksiniz.