Bu yazıda, basit bir inotify + createrepo betiği kullanarak bir rpm yapı deposuna bakacağız. Eserler, webdav aracılığıyla apache httpd kullanılarak yüklenir. Neden apache httpd yazının sonuna doğru yazılacak.
Bu nedenle, çözüm yalnızca RPM depolamayı düzenlemek için aşağıdaki gereksinimleri karşılamalıdır:
Bedava
Yapı deposuna yüklendikten birkaç saniye sonra paketin depoda bulunması.
Küspe Bana aşırı tasarlanmış bir çözüm gibi görünüyor.
eserler SonaType Nexus blob içinde saklanır. Ani bir elektrik kesintisi durumunda, yedeğiniz yoksa blob'u geri yükleyemezsiniz. Bu hatayı aldık: 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 asla kurtarılamadı.
Varsayılan olarak inotify-createrepo bir dizini izler /var/www/repos/rpm-repo/.
Bu dizini dosyada değiştirebilirsiniz. /etc/inotify-createrepo.conf.
kullanımı
Bir dizine herhangi bir dosya eklerken /var/www/repos/rpm-repo/ inotifywait bir dosya oluşturacak /tmp/need_create. run_createrepo işlevi sonsuz bir döngüde çalışır ve dosyayı izler /tmp/need_create. Dosya varsa, çalıştırın createrepo --update.
Mevcut bir çözümden yüksek kullanılabilirlik elde etmek için, HA için Keepalived ve yapı senkronizasyonu için Lsyncd olmak üzere 2 sunucu kullanabileceğinizi düşünüyorum. Lsyncd - yerel dizindeki değişiklikleri izleyen, bunları toplayan ve belirli bir süre sonra rsync bunları eşitlemeye başlayan bir arka plan programı. Ayrıntılar ve ayarlar gönderide açıklanmıştır "Bir milyar dosyanın hızlı senkronizasyonu".
WebDav
Dosya yüklemenin birkaç yolu vardır: SSH, NFS, WebDav. WebDav, modern ve basit bir seçenek gibi görünüyor.
WebDav için Apache httpd kullanacağız. Neden 2020'de Apache httpd ve nginx değil?
Nginx + modülleri oluşturmak için otomatik araçlar kullanmak istiyorum (örneğin, Webdav).
Apache httpd yapılandırmasının geri kalanını kendiniz yapacağınızı düşünüyorum.
Apache httpd'nin önünde Nginx
Apache'den farklı olarak Nginx, olay tabanlı bir istek işleme modeli kullanır; bu, herhangi bir sayıda istemci için yalnızca bir HTTP sunucu işleminin gerekli olduğu anlamına gelir. Nginx kullanabilir ve sunucu yükünü azaltabilirsiniz.
nginx-front.conf yapılandırması. Nginx yapılandırmasının geri kalanını kendiniz yapacağınızı düşünüyorum.