මෙම සටහනේදී, අපි සරල inotify + createrepo ස්ක්රිප්ට් එකක් භාවිතයෙන් rpm කෞතුක භාණ්ඩ ගබඩාවක් දෙස බලමු. කෞතුක භාණ්ඩ apache httpd භාවිතයෙන් webdav හරහා උඩුගත කෙරේ. ඇයි apache httpd පෝස්ට් එකේ අගට ලියන්නේ.
එබැවින්, විසඳුම RPM ගබඩාව පමණක් සංවිධානය කිරීම සඳහා පහත අවශ්යතා සපුරාලිය යුතුය:
-
නිදහස්
-
කෞතුක භාණ්ඩ ගබඩාවට උඩුගත කිරීමෙන් තත්පර කිහිපයකට පසු ගබඩාවේ පැකේජය තිබීම.
-
ස්ථාපනය සහ නඩත්තු කිරීම පහසුය
-
ඉහළ ලබා ගැනීමේ හැකියාව
ඇයි නැත්තේ
SonaType Nexus හෝපල්ප් : -
තුළ ගබඩා කිරීම
SonaType Nexus හෝපල්ප් බොහෝ වර්ගවල කෞතුක වස්තු එයට හේතු වේSonaType Nexus හෝපල්ප් අසාර්ථක වීමේ තනි ලක්ෂයක් බවට පත් වේ. -
ඉහළ ලබා ගැනීමේ හැකියාව
SonaType Nexus ගෙවනු ලැබේ. -
පල්ප් මට පෙනෙන්නේ ඕනෑවට වඩා ඉංජිනේරුමය විසඳුමක් ලෙසයි. -
කෞතුක වස්තු
SonaType 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
ඉහළ ලබා ගැනීමේ හැකියාව
පවතින විසඳුමකින් ඉහළ ලබා ගැනීමේ හැකියාවක් ඇති කිරීමට, ඔබට HA සඳහා Keepalived සහ කෞතුක භාණ්ඩ සමමුහුර්තකරණය සඳහා Lsyncd සේවාදායක 2ක් භාවිතා කළ හැකි යැයි මම සිතමි.
වෙබ්ඩව්
ගොනු උඩුගත කිරීමට ක්රම කිහිපයක් තිබේ: SSH, NFS, WebDav. WebDav නවීන සහ සරල විකල්පයක් බව පෙනේ.
WebDav සඳහා, අපි Apache httpd භාවිතා කරන්නෙමු. 2020 දී Apache httpd සහ nginx නොවන්නේ ඇයි?
මම 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>
Apache httpd වින්යාසයේ ඉතිරි කොටස ඔබ විසින්ම සිදු කරනු ඇතැයි මම සිතමි.
Nginx Apache ඉදිරියෙන් httpd
Apache මෙන් නොව, Nginx විසින් සිද්ධි පාදක ඉල්ලීම් සැකසුම් ආකෘතියක් භාවිතා කරයි, එයින් අදහස් වන්නේ ඕනෑම සේවාලාභීන් සංඛ්යාවක් සඳහා අවශ්ය වන්නේ එක් HTTP සේවාදායක ක්රියාවලියක් පමණක් බවයි. ඔබට nginx භාවිතා කර සේවාදායක භාරය අඩු කළ හැකිය.
nginx-front.conf config. ඉතිරි 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