Repositori rpm mudah menggunakan Inotify dan webdav
Dalam siaran ini kita akan melihat storan artifak rpm menggunakan skrip mudah dengan inotify + createrepo. Memuat naik artifak dilakukan melalui webdav menggunakan apache httpd. Mengapa apache httpd akan ditulis pada penghujung siaran.
Pulpa Nampaknya saya seperti penyelesaian yang terlalu rumit.
Artifak dalam SonaType Nexus disimpan dalam gumpalan. Jika berlaku gangguan bekalan elektrik secara tiba-tiba, anda tidak akan dapat memulihkan gumpalan jika anda tidak mempunyai sandaran. Kami mempunyai ralat ini: 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 tidak pernah dipulihkan.
Secara lalai, inotify-createrepo memantau direktori /var/www/repos/rpm-repo/.
Anda boleh menukar direktori ini dalam fail /etc/inotify-createrepo.conf.
Gunakan
Apabila menambah sebarang fail pada direktori /var/www/repos/rpm-repo/ inotifywait akan mencipta fail /tmp/need_create. Fungsi run_createrepo berjalan dalam gelung yang tidak berkesudahan dan memantau fail /tmp/need_create. Jika fail wujud, ia berjalan createrepo --update.
Untuk membuat ketersediaan tinggi daripada penyelesaian sedia ada, saya rasa anda boleh menggunakan 2 pelayan, Keepalived untuk HA dan Lsyncd untuk menyegerakkan artifak. Lsyncd - daemon yang memantau perubahan dalam direktori tempatan, mengagregatkannya, dan selepas masa tertentu rsync mula menyegerakkannya. Butiran dan persediaan diterangkan dalam siaran "Penyegerakan pantas satu bilion fail".
WebDAV
Anda boleh memuat naik fail dalam beberapa cara: SSH, NFS, WebDav. WebDav nampaknya merupakan pilihan yang moden dan mudah.
Untuk WebDav kami akan menggunakan Apache httpd. Mengapa Apache httpd pada tahun 2020 dan bukan nginx?
Saya ingin menggunakan alat automatik untuk membina modul Nginx + (contohnya, Webdav).
Saya rasa anda boleh melakukan seluruh persediaan httpd Apache sendiri.
Nginx sebelum Apache httpd
Tidak seperti Apache, Nginx menggunakan model pemprosesan permintaan berasaskan peristiwa, yang memerlukan hanya satu proses pelayan HTTP untuk sebarang bilangan pelanggan. Anda boleh menggunakan nginx dan mengurangkan beban pada pelayan.
Konfigurasi nginx-front.conf. Saya fikir anda boleh melakukan baki persediaan nginx sendiri.