Sa kini nga post, atong tan-awon ang usa ka rpm artifact repository gamit ang usa ka yano nga inotify + createrepo script. Ang mga artifact gi-upload pinaagi sa webdav gamit ang apache httpd. Ngano nga ang apache httpd isulat sa katapusan sa post.
Mao nga, ang solusyon kinahanglan nga makab-ot ang mosunod nga mga kinahanglanon alang sa pag-organisar lamang sa pagtipig sa RPM:
Libre
Ang pagkaanaa sa pakete sa repositoryo pipila ka segundo pagkahuman sa pag-upload sa artifact repository.
Pagtipig sa SonaType Nexus o Pulp daghang mga matang sa mga artifact ang nagdala sa kamatuoran nga SonaType Nexus o Pulp mahimong usa ka punto sa kapakyasan.
Pulp Morag usa ka over-engineered nga solusyon alang kanako.
Mga artifact sa SonaType Nexus gitipigan sa blob. Kung adunay kalit nga pagkawala sa kuryente, dili nimo mabalik ang blob kung wala ka backup. Kami adunay kini nga sayup: 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. Wala na mabawi si Blob.
Pinaagi sa default ang inotify-createrepo nag-monitor sa usa ka direktoryo /var/www/repos/rpm-repo/.
Mahimo nimong usbon kini nga direktoryo sa file /etc/inotify-createrepo.conf.
Paggamit
Kung magdugang bisan unsang file sa usa ka direktoryo /var/www/repos/rpm-repo/ ang inotifywait maghimo usa ka file /tmp/need_create. Ang run_createrepo function nagdagan sa usa ka walay katapusan nga loop ug nagmonitor sa file /tmp/need_create. Kung naa ang file, dayon pagdagan createrepo --update.
Aron makahimo og taas nga magamit gikan sa usa ka kasamtangan nga solusyon, sa akong hunahuna mahimo nimo gamiton ang 2 nga mga server, Keepalived para sa HA ug Lsyncd alang sa artifact synchronization. Lsyncd - usa ka daemon nga nag-monitor sa mga pagbag-o sa lokal nga direktoryo, nag-aggregate niini, ug pagkahuman sa usa ka oras, ang rsync nagsugod sa pag-synchronize niini. Ang mga detalye ug mga setting gihulagway sa post "Dali nga pag-synchronize sa usa ka bilyon nga mga file".
webdav
Adunay daghang mga paagi sa pag-upload sa mga file: SSH, NFS, WebDav. Ang WebDav daw usa ka moderno ug yano nga kapilian.
Para sa WebDav, atong gamiton ang Apache httpd. Ngano nga ang Apache httpd sa 2020 ug dili nginx?
Gusto nakong mogamit og mga automated nga himan alang sa pagtukod sa Nginx + modules (pananglitan, Webdav).
Sa akong hunahuna buhaton nimo ang nahabilin sa Apache httpd configuration sa imong kaugalingon.
Nginx sa atubangan sa Apache httpd
Dili sama sa Apache, ang Nginx naggamit sa usa ka modelo sa pagproseso sa hangyo nga nakabase sa panghitabo, nga nagpasabot nga usa lamang ka proseso sa HTTP server ang gikinahanglan alang sa bisan unsang gidaghanon sa mga kliyente. Mahimo nimong gamiton ang nginx ug pagpakunhod sa load sa server.
nginx-front.conf config. Sa akong hunahuna buhaton nimo ang nahabilin nga pag-configure sa nginx sa imong kaugalingon.