ဤပို့စ်တွင်၊ ရိုးရိုး inotify + createrepo script ကို အသုံးပြု၍ rpm artifact repository ကို ကြည့်ပါမည်။ Artifacts များကို apache httpd ကို အသုံးပြု၍ webdav မှတဆင့် အပ်လုဒ်လုပ်ပါသည်။ ဘာကြောင့် apache httpd ကို ပို့စ်ရဲ့အဆုံးမှာ ရေးရပါလိမ့်။
ထို့ကြောင့်၊ ဖြေရှင်းချက်သည် RPM သိုလှောင်မှုတစ်ခုတည်းကို စီစဉ်ရန်အတွက် အောက်ပါလိုအပ်ချက်များနှင့် ကိုက်ညီရမည်-
-
အခမဲ့
-
ရှေးဟောင်းပစ္စည်းသိုလှောင်ခန်းသို့ အပ်လုဒ်တင်ပြီးနောက် စက္ကန့်အနည်းငယ်အကြာတွင် သိုလှောင်မှုတွင် ပက်ကေ့ခ်ျ၏ရရှိနိုင်မှု။
-
တပ်ဆင်ရန်နှင့်ထိန်းသိမ်းရန်လွယ်ကူသည်။
-
မြင့်မားသောရရှိနိုင်မှုဖြစ်စေရန်စွမ်းရည်
ဘာလို့မဖြစ်ရမလဲ
SonaType Nexus သို့မဟုတ်ပျော့ဖတ် : -
သိုလှောင်မှု
SonaType Nexus သို့မဟုတ်ပျော့ဖတ် အမျိုးအစားများစွာရှိသော ရှေးဟောင်းပစ္စည်းများသည် ထိုအချက်ကို ဦးတည်သည်။SonaType Nexus သို့မဟုတ်ပျော့ဖတ် ရှုံးနိမ့်မှု၏ တစ်ခုတည်းသော အမှတ်ဖြစ်လာသည်။ -
မြင့်မားသောရရှိနိုင်မှု
SonaType Nexus ပေးဆောင်သည်။ -
ပျော့ဖတ် ကျွန်တော့်အတွက် အင်ဂျင်နီယာ လွန်ကဲတဲ့ ဖြေရှင်းချက်တစ်ခုလို ဖြစ်နေတယ်။ -
ရေးပေးသည်။
SonaType Nexus blob တွင်သိမ်းဆည်းထားသည်။ ရုတ်တရတ် ဓာတ်အားပြတ်တောက်သည့်ကိစ္စတွင်၊ သင့်တွင် အရန်သိမ်းဆည်းမှုမရှိပါက blob ကို ပြန်လည်ရယူနိုင်မည်မဟုတ်ပါ။ ကျွန်ုပ်တို့တွင် ဤအမှားရှိပါသည်-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 သည် ဘယ်သောအခါမှ ပြန်လည်ကောင်းမွန်ခြင်းမရှိပါ။
အရင်းအမြစ်
→ အရင်းအမြစ်ကုဒ်တည်ရှိသည်။
ပင်မဇာတ်ညွှန်းသည် ဤကဲ့သို့ဖြစ်သည်-
#!/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 &
ustanovka
inotify-createrepo သည် CentOS 7 နှင့်အထက်တွင်သာအလုပ်လုပ်သည်။ ၎င်းကို CentOS 6 တွင် အလုပ်မလုပ်နိုင်ခဲ့ပါ။
yum -y install yum-plugin-copr
yum copr enable antonpatsev/inotify-createrepo
yum -y install inotify-createrepo
systemctl start inotify-createrepo
ဖွဲ့စည်းမှု
မူရင်းအားဖြင့် inotify-createrepo သည် လမ်းညွှန်တစ်ခုအား စောင့်ကြည့်သည်။ /var/www/repos/rpm-repo/
.
သင်သည် ဤဖိုင်လမ်းညွှန်ကို ပြောင်းလဲနိုင်သည်။ /etc/inotify-createrepo.conf.
၏အသုံးပြုမှု
မည်သည့်ဖိုင်ကိုမဆို directory တစ်ခုသို့ထည့်သောအခါ /var/www/repos/rpm-repo/
inotifywait ဖိုင်တစ်ခုဖန်တီးလိမ့်မည်။ /tmp/need_create
. run_createrepo လုပ်ဆောင်ချက်သည် အဆုံးမရှိ အဝိုင်းအတွင်း အလုပ်လုပ်ပြီး ဖိုင်ကို စောင့်ကြည့်သည်။ /tmp/need_create
. ဖိုင်ရှိရင် run လိုက်ပါ။ createrepo --update
.
ဖိုင်ထဲတွင် ထည့်သွင်းမှုတစ်ခု ပေါ်လာပါမည်-
/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
မြင့်မားသောရရှိနိုင်မှုဖြစ်စေရန်စွမ်းရည်
ရှိပြီးသားဖြေရှင်းချက်တစ်ခုမှ မြင့်မားစွာရရှိနိုင်စေရန်အတွက်၊ ရှေးဟောင်းပစ္စည်းထပ်တူပြုခြင်းအတွက် Keepalived for HA နှင့် Lsyncd ဆာဗာ 2 ခုကို သင်အသုံးပြုနိုင်သည်ဟု ကျွန်တော်ထင်ပါတယ်။
webdav
ဖိုင်များကို အပ်လုဒ်လုပ်ရန် နည်းလမ်းများစွာ ရှိသည်- SSH၊ NFS၊ WebDav။ WebDav သည် ခေတ်မီပြီး ရိုးရှင်းသော ရွေးချယ်မှုတစ်ခု ဖြစ်ပုံရသည်။
WebDav အတွက်၊ ကျွန်ုပ်တို့သည် Apache httpd ကို အသုံးပြုပါမည်။ 2020 တွင် Apache httpd သည် အဘယ်ကြောင့် nginx မဟုတ်သနည်း။
Nginx + modules (ဥပမာ၊ Webdav) တည်ဆောက်ရန်အတွက် အလိုအလျောက်ကိရိယာများကို အသုံးပြုလိုပါသည်။
Nginx + modules များတည်ဆောက်ရန်အတွက် ပရောဂျက်တစ်ခု ရှိပါသည်။
ဆွဲထုတ်ဖို့ တောင်းဆိုခဲ့တယ်။
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>
ကျန်တဲ့ Apache httpd configuration ကို သင်ကိုယ်တိုင်လုပ်မယ်လို့ထင်ပါတယ်။
Apache httpd ရှေ့ရှိ Nginx
Apache နှင့်မတူဘဲ၊ Nginx သည် ဖြစ်ရပ်အခြေခံတောင်းဆိုမှုလုပ်ဆောင်ခြင်းပုံစံကိုအသုံးပြုသည်၊ ဆိုလိုသည်မှာ client အရေအတွက်အတွက် HTTP ဆာဗာလုပ်ငန်းစဉ်တစ်ခုသာလိုအပ်သည်။ သင်သည် nginx ကိုသုံးနိုင်ပြီး server load ကိုလျှော့ချနိုင်သည်။
nginx-front.conf config ။ ကျန်တဲ့ nginx configuration ကို ကိုယ်တိုင်လုပ်မယ်လို့ ထင်ပါတယ်။
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;
}
}
WebDav မှတစ်ဆင့် ဖိုင်များကို ဒေါင်းလုဒ်လုပ်ခြင်း။
rpm ကိုဒေါင်းလုဒ်လုပ်ရန်အလွန်လွယ်ကူသည်။
curl -T ./nginx-1.16.1-1.el7.ngx.x86_64.rpm https://ваш-виртуальный-хост/rpm/
source: www.habr.com