Maqaalkan, waxaanu ku eegi doonaa kaydka artifact rpm anagoo adeegsanayna qoraal fudud oo inotify + createrepo ah. Farshaxanka waxaa lagu soo shubaa webdav iyadoo la isticmaalayo apache httpd. Waa maxay sababta apache httpd loo qori doonaa dhamaadka boostada.
Markaa, xalku waa inuu buuxiyaa shuruudaha soo socda si loo abaabulo kaydinta RPM oo keliya:
-
Bilaash
-
Helitaanka xirmada ee kaydka dhawr ilbiriqsi ka dib marka la soo geliyo kaydka artifact
-
Si fudud loo rakibo oo loo dayactiro
-
Awoodda samaynta helitaan sare
Maxaa diidaya
SonaType Nexus amaLaalaabka : -
Kaydinta gudaha
SonaType Nexus amaLaalaabka noocyo badan oo farshaxan ah ayaa keenaya xaqiiqdaSonaType Nexus amaLaalaabka noqday hal qodob oo guuldarraystay. -
Helitaanka sare ee gudaha
SonaType Nexus waa la bixiyaa. -
Laalaabka Waxay ila tahay xal aad loo farsameeyay. -
Farshaxanada ku jira
SonaType Nexus ku kaydsan blob. Haddii ay dhacdo koronto degdeg ah, ma awoodid inaad dib u soo celiso boobka haddii aadan haysan kayd. Waxaan qabnay qaladkan: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 waligeed lama soo kaban.
Lambarka isha
β Koodhka isha ayaa ku yaal
Qoraalka ugu muhiimsan wuxuu u eg yahay sidan:
#!/bin/bash
source /etc/inotify-createrepo.conf
LOGFILE=/var/log/inotify-createrepo.log
function monitoring() {
inotifywait -e close_write,delete -msrq --exclude ".repodata|.olddata|repodata" "${REPO}" | while read events
do
echo $events >> $LOGFILE
touch /tmp/need_create
done
}
function run_createrepo() {
while true; do
if [ -f /tmp/need_create ];
then
rm -f /tmp/need_create
echo "start createrepo $(date --rfc-3339=seconds)"
/usr/bin/createrepo --update "${REPO}"
echo "finish createrepo $(date --rfc-3339=seconds)"
fi
sleep 1
done
}
echo "Start filesystem monitoring: Directory is $REPO, monitor logfile is $LOGFILE"
monitoring >> $LOGFILE &
run_createrepo >> $LOGFILE &
Ku rakibida
inotify-createrepo kaliya waxay ku shaqeysaa CentOS 7 ama ka sareeya. Way kari wayday inay ku shaqeyso CentOS 6.
yum -y install yum-plugin-copr
yum copr enable antonpatsev/inotify-createrepo
yum -y install inotify-createrepo
systemctl start inotify-createrepo
Habaynta
Sida caadiga ah inotify-createrepo waxay kormeertaa hagaha /var/www/repos/rpm-repo/
.
Waxaad ku bedeli kartaa hagahan faylka /etc/inotify-createrepo.conf.
Isticmaal
Marka lagu daro fayl kasta hagaha /var/www/repos/rpm-repo/
inotifywait wuxuu abuuri doonaa fayl /tmp/need_create
. Shaqada run_createrepo waxay ku socotaa wareeg aan xad lahayn waxayna la socotaa faylka /tmp/need_create
. Haddii faylku jiro, ka dibna orod createrepo --update
.
Gelitaan ayaa ka muuqan doona faylka:
/var/www/repos/rpm-repo/ CREATE nginx-1.16.1-1.el7.ngx.x86_64.rpm
start createrepo 2020-03-02 09:46:21+03:00
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Spawning worker 2 with 0 pkgs
Spawning worker 3 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
finish createrepo 2020-03-02 09:46:22+03:00
Awoodda samaynta helitaan sare
Si aad u hesho helitaan sare oo ka baxsan xalka jira, waxaan u maleynayaa inaad isticmaali karto 2 server, Keepalive for HA iyo Lsyncd ee isku xirka artifact.
webdav
Waxaa jira dhowr siyaabood oo loo geliyo faylasha: SSH, NFS, WebDav. WebDav waxay u muuqataa inay tahay ikhtiyaar casri ah oo fudud.
WebDav, waxaan u isticmaali doonaa Apache httpd. Waa maxay sababta Apache httpd ee 2020 oo aan nginx ahayn?
Waxaan jeclaan lahaa inaan u isticmaalo aaladaha otomaatiga ah ee lagu dhisayo Nginx + modules (tusaale, Webdav).
Waxaa jira mashruuc lagu dhisayo Nginx + modules -
Waxaan sameeyay codsi jiid
config webdav.conf
DavLockDB /var/www/html/DavLock
<VirtualHost localhost:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
Alias /rpm /var/www/repos/rpm-repo
<Directory /var/www/repos/rpm-repo>
DAV On
Options Indexes FollowSymlinks SymLinksifOwnerMatch IncludesNOEXEC
IndexOptions NameWidth=* DescriptionWidth=*
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
Waxaan u maleynayaa inaad adigu samayn doonto inta ka hartay Apache httpd.
Nginx oo ku taal Apache httpd
Si ka duwan Apache, Nginx waxay isticmaashaa qaabka codsiga ku salaysan dhacdada, taas oo macnaheedu yahay in hal nidaam oo HTTP ah oo kaliya looga baahan yahay tiro kasta oo macaamiisha ah. Waxaad isticmaali kartaa nginx oo aad yareyn kartaa culeyska server-ka.
nginx-front.conf config. Waxaan u maleynayaa inaad adigu samayn doonto inta ka hartay qaabeynta nginx.
upstream nginx_front {
server localhost:80;
}
server {
listen 443 ssl;
server_name Π²Π°Ρ-Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ
-Ρ
ΠΎΡΡ;
access_log /var/log/nginx/nginx-front-access.log main;
error_log /var/log/nginx/nginx-front.conf-error.log warn;
location / {
proxy_pass http://nginx_front;
}
}
Ku soo dejinta faylasha iyada oo loo marayo WebDav
Soo dejinta rpm waa mid aad u fudud.
curl -T ./nginx-1.16.1-1.el7.ngx.x86_64.rpm https://Π²Π°Ρ-Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ-Ρ
ΠΎΡΡ/rpm/
Source: www.habr.com