Ma'ajiyar rpm mai sauƙi ta amfani da Inotify da webdav

A cikin wannan sakon za mu kalli ajiyar kayan tarihi na rpm ta amfani da rubutu mai sauƙi tare da inotify + createrepo. Ana yin loda kayan tarihi ta hanyar webdav ta amfani da apache httpd. Me yasa za a rubuta apache httpd zuwa ƙarshen sakon.

Don haka, dole ne mafita ta cika buƙatun masu zuwa don tsara ajiyar RPM kawai:

  • Kyauta

  • Samuwar kunshin a cikin ma'ajiyar 'yan dakiku bayan lodawa zuwa ma'ajiyar kayan tarihi.

  • Sauƙi don shigarwa da kulawa

  • Ability don yin babban samuwa

    Me yasa ba SonaType Nexus ko ɓangaren litattafan almara:

  • Adana a ciki SonaType Nexus ko ɓangaren litattafan almara nau'ikan kayan tarihi da yawa suna kaiwa ga gaskiyar cewa SonaType Nexus ko ɓangaren litattafan almara ya zama batu guda na gazawa.

  • Babban samuwa a ciki SonaType Nexus ana biya.

  • ɓangaren litattafan almara Ga alama a gare ni kamar warwarewar rikice-rikice.

  • Kayan tarihi a ciki SonaType Nexus ana adana su a cikin tsummoki. Idan aka sami katsewar wutar lantarki kwatsam, ba za ku iya dawo da ɓangarorin ba idan ba ku da madadin. Mun sami wannan kuskure: 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 bai sake dawowa ba.

Source

→ Lambar tushe tana nan a nan

Babban rubutun yayi kama da haka:

#!/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 &

saitin

Inotify-createrepo kawai yana aiki akan CentOS 7 ko sama. An kasa samun shi yayi aiki akan CentOS 6.

yum -y install yum-plugin-copr
yum copr enable antonpatsev/inotify-createrepo
yum -y install inotify-createrepo
systemctl start inotify-createrepo

Kanfigareshan

Ta hanyar tsoho, inotify-createrepo yana lura da kundin adireshi /var/www/repos/rpm-repo/.

Kuna iya canza wannan jagorar a cikin fayil ɗin /etc/inotify-createrepo.conf.

Amfani

Lokacin ƙara kowane fayil zuwa kundin adireshi /var/www/repos/rpm-repo/ inotifywait zai ƙirƙiri fayil ɗin /tmp/need_create. Aikin run_createrepo yana gudana a cikin madauki mara iyaka kuma yana sa ido kan fayil ɗin /tmp/need_create. Idan fayil ɗin ya wanzu, yana gudana createrepo --update.

Wani shigarwa zai bayyana a cikin fayil:

/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

Ability don yin babban samuwa

Don yin babban samuwa daga wani bayani mai gudana, Ina tsammanin za ku iya amfani da sabobin 2, Keepalive for HA da Lsyncd don aiki tare da kayan tarihi. Lsyncd - daemon wanda ke lura da canje-canje a cikin kundin adireshi na gida, yana tara su, kuma bayan wani lokaci rsync ya fara aiki tare da su. An bayyana cikakkun bayanai da saitin a cikin sakon "Saurin aiki tare na fayilolin biliyan".

webdav

Kuna iya loda fayiloli ta hanyoyi da yawa: SSH, NFS, WebDav. WebDav ya zama zaɓi na zamani da sauƙi.

Don WebDav za mu yi amfani da Apache httpd. Me yasa Apache httpd a cikin 2020 kuma ba nginx ba?

Ina so in yi amfani da kayan aikin atomatik don gina Nginx + kayayyaki (misali, Webdav).

Akwai aikin gina Nginx + kayayyaki - Nginx-gina. Idan kuna amfani da nginx + wevdav don loda fayiloli, kuna buƙatar tsari nginx-dav-ext-module. Lokacin ƙoƙarin ginawa da amfani da Nginx tare da nginx-dav-ext-module ta wajen Nginx-gina za mu sami kuskure Ana amfani da http_dav_module maimakon nginx-dav-ext-module. An rufe kwaro iri ɗaya a lokacin rani nginx: umarnin dav_methods ba a sani ba.

Na yi roƙon Ja Ƙara duba git_url don haɗawa, sake fasalin - tare da-{}_module и idan module == "http_dav_module" an haɗa --tare da. Amma ba a yarda da su ba.

Sanya 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>

Ina tsammanin zaku iya yin sauran saitin Apache httpd da kanku.

Nginx kafin Apache httpd

Ba kamar Apache ba, Nginx yana amfani da samfurin sarrafa buƙatun abin da ya faru, wanda ke buƙatar tsarin sabar HTTP ɗaya kawai ga kowane adadin abokan ciniki. Kuna iya amfani da nginx kuma ku rage kaya akan uwar garken.

Sanya nginx-front.conf. Ina tsammanin zaku iya yin sauran saitin nginx da kanku.

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;
    }
}

Ana loda fayiloli ta hanyar WebDav

Loading rpm abu ne mai sauqi qwarai.

curl -T ./nginx-1.16.1-1.el7.ngx.x86_64.rpm https://ваш-виртуальный-хост/rpm/

source: www.habr.com

Add a comment