Simplex rpm repositorium utens Inotify et webdav

In hoc poste videbimus rpm repositionis artificii usus simplici scripto cum inotify + createrepo. Fascinatio artificiorum exercetur per webdav utens apache httpd. Cur apache post finem scribetur httpd.

Itaque solutio occurrere debet his requisitis ad solum RPM repositionis ordinandum:

  • liberi

  • Disponibilitas sarcinarum in repositorio brevi post immissionem artificii repositorium.

  • Facile install et ponere

  • Facultatem ad alta disponibilitate

    Cur non SonaType Nexus aut pulpam:

  • Repono in SonaType Nexus aut pulpam plura genera artificialium inducit quod SonaType Nexus aut pulpam facti sunt unum punctum defectum.

  • Alta disponibilitate in SonaType Nexus solvitur.

  • pulpam Mihi videtur quasi solutio overcomplicata.

  • Artificia in SonaType Nexus reponuntur in blob. Si euaxio potestas subita est, blob restituere non poteris, si tergum non habes. Hunc errorem habuimus; 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 numquam restituta est.

fons

β†’ Source codice sita est hic

Pelagus scriptum similis est:

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

occasum

Inotify-crearepo tantum operatur in CentOS 7 seu superiore. CentOS VI laborare non potuit.

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

Configurationis

Defalta, monitores crearepo-inotify indicem /var/www/repos/rpm-repo/.

Hanc indicem in tabella mutare potes /etc/inotify-createrepo.conf.

usum

Cum addendo lima ut aliquem directorium /var/www/repos/rpm-repo/ inotifywait et creare lima /tmp/need_create. Munus run_createrepo in infinitum ansam decurrit et tabella monitores /tmp/need_create. Si tabella exstat, ea fugit createrepo --update.

Viscus in tabella apparebit:

/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

Facultatem ad alta disponibilitate

Ut prompta dispositio ex solutione exsistente facienda, puto te posse uti 2 servientibus, conservata pro HA et Lsyncd artificiis synchronisandis. Lsyncd - daemon, qui monitores locorum directorium mutat, eas aggregat, et post certum tempus rsync ea synchronizare incipit. Singula et setup descripta sunt in fronte "Fast synchronization of a billion files".

webdav

Scapulis pluribus modis fasciculos immittere potes: SSH, NFS, WebDav. WebDav optio simplex et moderna esse videtur.

Pro WebDav utemur Apache httpd. Cur Apache in 2020 et non nginx?

Velim uti instrumentis automatis ad modulorum fabricandi Nginx + (exempli gratia Webdav).

Est consilium aedificare modulorum Nginx + - Nginx fabricator. Si nginx + wevdav ad fasciculos fasciculos uteris, moduli opus est nginx-dav-ext-module. Cum conatur facere et uti Nginx cum nginx-dav-ext-module per Nginx fabricator nos error erit Adhibetur ab http_dav_module loco nginx-dav-ext-module. Idem cimex in aestate claudebatur nginx: [emerg] ignota directiva dav_methods.

Ego feci petitionem excute Addere perscriptio git_url pro embedded, reformatur β€”with-{}_module ΠΈ si modulus == "http_dav_module" append --with. Sed non recusandae.

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

Puto te posse facere reliqua Apache httpd teipsum.

Nginx ante Apache httpd

Dissimilis Apache, Nginx instantiae processus substructio utitur exemplari, quod unum tantum HTTP requirit processum servo pro quovis clientium numero. Potes uti nginx et onus in calculonis minuere.

Mando nginx-front.conf. Puto te posse facere quod reliquum nginx te habeat.

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

Discas lima per WebDav

Loading rpm valde simplex est.

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

Source: www.habr.com