هن پوسٽ ۾، اسان هڪ سادي inotify + createrepo اسڪرپٽ استعمال ڪندي هڪ rpm آرٽيڪل مخزن تي نظر ڪنداسين. نمونا اپلوڊ ڪيا ويا آهن ويب ڊيو ذريعي apache httpd استعمال ڪندي. ڇو apache httpd پوسٽ جي آخر ۾ لکيو ويندو.
تنهن ڪري، حل صرف RPM اسٽوريج کي منظم ڪرڻ لاء هيٺين گهرجن کي پورو ڪرڻ گهرجي:
-
واندو
-
مخزن ۾ پيڪيج جي دستيابي چند سيڪنڊن کان پوءِ آرٽيڪل مخزن تي اپ لوڊ ڪرڻ کان پوءِ.
-
انسٽال ڪرڻ ۽ برقرار رکڻ لاء آسان
-
اعلي دستيابي ڪرڻ جي صلاحيت
ڇو نه
سون ٽائيپ Nexus ياپل : -
اسٽوريج ۾
سون ٽائيپ Nexus ياپل ڪيترن ئي قسمن جا نمونا حقيقت ڏانهن وٺي ويندا آهنسون ٽائيپ Nexus ياپل ناڪامي جو هڪ نقطو بڻجي. -
۾ اعلي دستيابي
سون ٽائيپ Nexus ادا ڪيو ويندو آهي. -
پل مون لاءِ هڪ وڌيڪ انجنيئر حل وانگر لڳي ٿو. -
۾ آثار
سون ٽائيپ Nexus بلب ۾ محفوظ ٿيل. اوچتو بجلي بند ٿيڻ جي صورت ۾، جيڪڏهن توهان وٽ بيڪ اپ نه آهي ته توهان بلب کي بحال ڪرڻ جي قابل نه هوندا. اسان وٽ هي غلطي هئي: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
. بلب ڪڏهن به بحال نه ٿيو.
ذريعو
→ ماخذ ڪوڊ واقع آهي
مکيه رسم الخط هن طرح نظر اچي ٿو:
#!/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 &
تنصيب
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.
استعمال ڪريو
جڏهن ڪنهن به فائل کي ڊاريڪٽري ۾ شامل ڪيو وڃي /var/www/repos/rpm-repo/
inotifywait هڪ فائيل ٺاهيندو /tmp/need_create
. run_createrepo فنڪشن هڪ لامحدود لوپ ۾ هلندو آهي ۽ فائل جي نگراني ڪندو آهي /tmp/need_create
. جيڪڏهن فائل موجود آهي، پوء هلايو 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
اعلي دستيابي ڪرڻ جي صلاحيت
موجوده حل مان اعليٰ دستيابي ٺاهڻ لاءِ، مان سمجهان ٿو ته توهان 2 سرور استعمال ڪري سگهو ٿا، HA لاءِ Keepalived ۽ artifact synchronization لاءِ Lsyncd.
ويب ڊيو
فائلون اپلوڊ ڪرڻ جا ڪيترائي طريقا آھن: SSH، NFS، WebDav. WebDav هڪ جديد ۽ سادو اختيار لڳي ٿو.
WebDav لاءِ، اسان استعمال ڪنداسين Apache httpd. 2020 ۾ Apache httpd ڇو ۽ نينگڪس نه؟
مان Nginx + ماڊل تعمير ڪرڻ لاء خودڪار اوزار استعمال ڪرڻ چاهيان ٿو (مثال طور، Webdav).
Nginx + ماڊلز جي تعمير لاء ھڪڙو منصوبو آھي -
مون ڇڪڻ جي درخواست ڪئي
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>
مان سمجهان ٿو ته توهان باقي اپاچي httpd ترتيب پاڻ ٺاهيندا.
Nginx Apache httpd جي سامهون
Apache جي برعڪس، نينڪس هڪ واقعا تي ٻڌل درخواست پروسيسنگ ماڊل استعمال ڪري ٿو، جنهن جو مطلب آهي ته صرف هڪ HTTP سرور پروسيس جي ضرورت آهي ڪنهن به ڪلائنٽ لاء. توهان nginx استعمال ڪري سگهو ٿا ۽ سرور لوڊ گھٽائي سگهو ٿا.
nginx-front.conf ترتيب. مان سمجهان ٿو ته توهان باقي 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;
}
}
WebDav ذريعي فائلون ڊائون لوڊ ڪندي
rpm ڊائون لوڊ ڪرڻ تمام آسان آهي.
curl -T ./nginx-1.16.1-1.el7.ngx.x86_64.rpm https://ваш-виртуальный-хост/rpm/
جو ذريعو: www.habr.com