Faʻamatalaga faigofie rpm faʻaoga Inotify ma webdav

I lenei pou, o le a tatou vaʻavaʻai i se fale teu oloa rpm e faʻaaoga ai se faʻamatalaga faigofie inotify + createrepo. O mea faʻapitoa e faʻapipiʻiina e ala ile webdav faʻaaoga apache httpd. Aisea o le a tusia ai apache httpd agai i le pito o le pou.

O lea la, o le fofo e tatau ona ausia manaoga nei mo le faʻatulagaina naʻo le teuina o le RPM:

  • Taoloto

  • Avanoa o le afifi i totonu o le faleteuoloa i ni nai sekone pe a uma ona tuʻuina i le fale teu oloa.

  • Faigofie e faʻapipiʻi ma tausia

  • Malosiaga e maua maualuga avanoa

    Aisea e le fai ai SonaType Nexus poʻo Pulp:

  • Teuina i totonu SonaType Nexus poʻo Pulp le tele o ituaiga o mea taua e tau atu i le mea moni e faapea SonaType Nexus poʻo Pulp avea ma se tulaga e tasi o le toilalo.

  • Avanoa maualuga i SonaType Nexus ua totogi.

  • Pulp E foliga mai o se fofo sili ona faʻainisinia ia te aʻu.

  • Meafaitino i totonu SonaType Nexus teuina i le fugala'au. A tupu fa'afuase'i le pa'u eletise, e le mafai ona e toe fa'afo'i le pa'u pe a leai sau fa'amaumauga. Na matou maua lenei mea sese: 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. E lei toe maua lava Blob.

Faʻamatalaga punaoa

→ O loʻo i ai le faʻailoga puna iinei

O le tusitusiga autu e pei o lenei:

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

faatulagaga

inotify-createrepo e naʻo le CentOS 7 poʻo le maualuga. Le mafai ona faʻaogaina i CentOS 6.

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

Fa'atonuga

E ala i le fa'aletonu o le inotify-createrepo e mata'ituina se lisi /var/www/repos/rpm-repo/.

E mafai ona e suia lenei lisi i le faila /etc/inotify-createrepo.conf.

Faaaoga

Pe a faʻaopoopoina soʻo se faila i se lisi /var/www/repos/rpm-repo/ inotifywait o le a faia se faila /tmp/need_create. O le galuega o le run_createrepo e alu i se matasele e le i'u ma mata'ituina le faila /tmp/need_create. Afai o iai le faila, ona tamoe lea createrepo --update.

O le a fa'aalia se fa'amatalaga i le faila:

/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

Malosiaga e maua maualuga avanoa

Ina ia maua le avanoa maualuga mai se vaifofo o loʻo i ai nei, ou te manatu e mafai ona e faʻaogaina 2 servers, Keepalived mo HA ma Lsyncd mo le faʻamaopoopoina o mea. Lsyncd - o se daemon e mataʻituina suiga i le lisi faʻapitonuʻu, faʻapipiʻi, ma a maeʻa se taimi patino, rsync amata ona faʻamaopoopoina. O faʻamatalaga ma faʻatulagaga o loʻo faʻamatalaina i le pou "Fa'atasi vave o le piliona faila".

webdav

E tele auala e lafo ai faila: SSH, NFS, WebDav. WebDav e foliga mai o se filifiliga faʻaonaponei ma faigofie.

Mo WebDav, matou te faʻaogaina Apache httpd. Aisea Apache httpd i le 2020 ae le o le nginx?

Ou te manaʻo e faʻaoga meafaigaluega faʻapitoa mo le fausiaina o Nginx + modules (mo se faʻataʻitaʻiga, Webdav).

O loʻo i ai se poloketi mo le fausiaina o Nginx + modules - nginx-fausia. Afai e te faʻaogaina le nginx + wevdav e faʻapipiʻi faila, ona e manaʻomia lea o se module nginx-dav-ext-module. Pe a taumafai e fausia ma faʻaoga Nginx ma nginx-dav-ext-module faatasi ai ma le fesoasoani nginx-fausia o le a tatou maua se mea sese Faʻaaogaina e le http_dav_module nai lo nginx-dav-ext-module. O le pusa lava lea e tasi na tapunia i le taumafanafana nginx: [emerg] taʻiala le iloa dav_methods.

Sa ou faia se talosaga toso Fa'aopoopo le siaki git_url mo le fa'apipi'i, toe fa'afo'i --ma-{}_module и pe afai o le module == "http_dav_module" fa'aopoopo --with. Ae sa lei taliaina i latou.

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>

Ou te manatu o le ae faia le isi vaega o le Apache httpd configuration oe lava ia.

Nginx i luma o Apache httpd

E le pei o Apache, Nginx faʻaaogaina se faʻataʻitaʻiga o talosaga e faʻatatau i mea na tutupu, o lona uiga e naʻo le tasi le HTTP server process e manaʻomia mo soʻo se numera o tagata faʻatau. E mafai ona e faʻaogaina le nginx ma faʻaitiitia le uta o le server.

nginx-front.conf config. Ou te manatu o le ae faia le isi vaega o le nginx configuration oe lava ia.

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

La'uina faila e ala ile WebDav

E faigofie tele le siiina o le rpm.

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

puna: www.habr.com

Faaopoopo i ai se faamatalaga