Malo osavuta a rpm pogwiritsa ntchito Inotify ndi webdav

Mu positi iyi tiwona zosungirako za rpm pogwiritsa ntchito script yosavuta ndi inotify + createrepo. Kuyika zinthu zakale kumachitika kudzera pa webdav pogwiritsa ntchito apache httpd. Chifukwa chiyani apache httpd idzalembedwa kumapeto kwa positi.

Chifukwa chake, yankho liyenera kukwaniritsa zofunika izi pokonzekera kusungirako kwa RPM kokha:

  • Kwaulere

  • Kupezeka kwa phukusili m'malo osungiramo masekondi angapo mutatsitsa kumalo osungirako zinthu zakale.

  • Zosavuta kukhazikitsa ndi kukonza

  • Kutha kupanga kupezeka kwakukulu

    Kulekeranji SonaType Nexus kapena Pulp:

  • yosungirako mkati SonaType Nexus kapena Pulp mitundu yambiri ya zinthu zakale imatsogolera ku mfundo yakuti SonaType Nexus kapena Pulp kukhala mfundo imodzi yolephera.

  • Kupezeka kwakukulu mu SonaType Nexus amalipidwa.

  • Pulp Zikuwoneka kwa ine ngati yankho lovuta kwambiri.

  • Artifacts mu SonaType Nexus amasungidwa mu blob. Ngati magetsi azima mwadzidzidzi, simudzatha kubwezeretsa blob ngati mulibe zosunga zobwezeretsera. Tinali ndi vuto ili: 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 sinabwezeretsedwe.

Nambala yachinsinsi

β†’ Source code ilipo apa

Script yayikulu ikuwoneka motere:

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

kolowera

Inotify-createrepo imangogwira ntchito pa CentOS 7 kapena kupitilira apo. Sindinathe kuyipangitsa kuti igwire ntchito pa CentOS 6.

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

Kusintha

Mwachikhazikitso, inotify-createrepo imayang'anira chikwatu /var/www/repos/rpm-repo/.

Mutha kusintha chikwatu ichi mufayilo /etc/inotify-createrepo.conf.

Gwiritsani ntchito

Powonjezera fayilo iliyonse ku chikwatu /var/www/repos/rpm-repo/ inotifywait ipanga fayilo /tmp/need_create. Ntchito ya run_createrepo imayenda mozungulira mosalekeza ndikuyang'anira fayilo /tmp/need_create. Ngati fayilo ilipo, imayenda createrepo --update.

Cholowa chidzawonekera mufayilo:

/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

Kutha kupanga kupezeka kwakukulu

Kuti mupeze kupezeka kwakukulu kuchokera ku yankho lomwe lilipo, ndikuganiza kuti mutha kugwiritsa ntchito ma seva a 2, Keepalived kwa HA ndi Lsyncd pakugwirizanitsa zinthu zakale. Lsyncd - daemon yomwe imayang'anira zosintha m'ndandanda wamba, kuziphatikiza, ndipo pakapita nthawi rsync imayamba kuzilunzanitsa. Tsatanetsatane ndi kukhazikitsa zikufotokozedwa mu positi "Kulunzanitsa kwachangu kwa mafayilo biliyoni".

WebDav

Mutha kukweza mafayilo m'njira zingapo: SSH, NFS, WebDav. WebDav ikuwoneka ngati njira yamakono komanso yosavuta.

Kwa WebDav tidzagwiritsa ntchito Apache httpd. Chifukwa chiyani Apache httpd mu 2020 osati nginx?

Ndikufuna kugwiritsa ntchito zida zodzipangira zokha pomanga ma module a Nginx + (mwachitsanzo, Webdav).

Pali pulojekiti yomanga ma module a Nginx + - Nginx-builder. Ngati mugwiritsa ntchito nginx + wevdav kukweza mafayilo, muyenera gawo nginx-dav-ext-module. Mukayesa kumanga ndi kugwiritsa ntchito Nginx ndi nginx-dav-ext-module mothandizidwa ndi Nginx-builder tipeza cholakwika Zogwiritsidwa ntchito ndi http_dav_module m'malo mwa nginx-dav-ext-module. Nsikidzi yomweyi idatsekedwa m'chilimwe nginx: [emerg] malangizo osadziwika dav_methods.

Ndinapanga pempho la Kokani Onjezani cheke git_url ya ophatikizidwa, opangidwanso -ndi-{}_module ΠΈ ngati gawo == "http_dav_module" onjezerani --with. Koma sanavomerezedwe.

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

Ndikuganiza kuti mutha kupanga zina zonse za Apache httpd nokha.

Nginx pamaso pa Apache httpd

Mosiyana ndi Apache, Nginx imagwiritsa ntchito njira yopangira zopempha zomwe zimachitika, zomwe zimafuna njira imodzi yokha ya seva ya HTTP kwa makasitomala angapo. Mutha kugwiritsa ntchito nginx ndikuchepetsa katundu pa seva.

Konzani nginx-front.conf. Ndikuganiza kuti mutha kupanga zina zonse za nginx nokha.

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

Kutsitsa mafayilo kudzera pa WebDav

Kutsegula rpm ndikosavuta.

curl -T ./nginx-1.16.1-1.el7.ngx.x86_64.rpm https://ваш-Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ-хост/rpm/

Source: www.habr.com

Kuwonjezera ndemanga