Sebaka se bonolo sa rpm se sebelisang Inotify le webdav

Ka poso ena, re tla sheba polokelo ea maiketsetso ea rpm re sebelisa sengoloa se bonolo sa inotify + createrepo. Lintho tse entsoeng ka matsoho li kenngoa ka webdav ho sebelisa apache httpd. Ke hobane'ng ha apache httpd e tla ngoloa ho ea qetellong ea poso.

Kahoo, tharollo e tlameha ho fihlela litlhoko tse latelang tsa ho hlophisa polokelo ea RPM feela:

  • Mahala

  • Ho fumaneha ha sephutheloana sebakeng sa polokelo metsotsoana e seng mekae ka mor'a ho kenya polokelong ea lintho tsa khale.

  • Ho bonolo ho kenya le ho hlokomela

  • Bokhoni ba ho etsa boteng bo phahameng

    Hobaneng ho se joalo SonaType Nexus kapa Makhasi ao:

  • Storage in SonaType Nexus kapa Makhasi ao mefuta e mengata ea lintho tse entsoeng ka matsoho e lebisa 'neteng ea hore SonaType Nexus kapa Makhasi ao eba ntlha e le nngwe ya ho hloleha.

  • Ho fumaneha ho phahameng ho SonaType Nexus e lefshoa.

  • Makhasi ao Ho bonahala eka ke tharollo e tsoetseng pele ho nna.

  • Artifacts in SonaType Nexus bolokoa ka blob. Haeba motlakase o tima ka tšohanyetso, u ke ke ua khona ho khutlisetsa blob haeba u sena bekapo. Re bile le phoso ena: 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 ha ea ka ea hlola e hlaphoheloa.

Khoutu ea mohloli

→ Khoutu ea mohloli e fumaneha mona

Script ea sehlooho e shebahala tjena:

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

bophirima

inotify-createrepo e sebetsa feela ho CentOS 7 kapa ho feta. Ha e khone ho e etsa hore e sebetse ho CentOS 6.

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

Tlhophiso

Ka ho sa feleng inotify-createrepo e hlokomela bukana /var/www/repos/rpm-repo/.

U ka fetola bukana ena faeleng /etc/inotify-createrepo.conf.

Sebelisa

Ha o eketsa faele efe kapa efe ho directory /var/www/repos/rpm-repo/ inotifywait e tla theha faele /tmp/need_create. Ts'ebetso ea run_createrepo e sebetsa ka loop e sa feleng mme e lekola faele /tmp/need_create. Haeba faele e le teng, matha createrepo --update.

Kenyo e tla hlaha faeleng:

/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

Bokhoni ba ho etsa boteng bo phahameng

Ho etsa hore ho be le phumaneho e phahameng ho tsoa ho tharollo e teng, ke nahana hore u ka sebelisa li-server tsa 2, Keepalived bakeng sa HA le Lsyncd bakeng sa ho lumellana ha lintho tsa khale. Lsyncd - daemon e behang leihlo liphetoho bukeng ea lehae, ea li kopanya, 'me kamora nako e itseng, rsync e qala ho li hokahanya. Lintlha le litlhophiso li hlalositsoe posong "Khokahano e potlakileng ea lifaele tse bilione".

webdav

Ho na le mekhoa e mengata ea ho kenya lifaele: SSH, NFS, WebDav. WebDav e bonahala e le khetho ea sejoale-joale ebile e bonolo.

Bakeng sa WebDav, re tla sebelisa Apache httpd. Hobaneng Apache httpd ka 2020 eseng nginx?

Ke kopa ho sebelisa lisebelisoa tse ikemetseng bakeng sa ho aha li-module tsa Nginx + (mohlala, Webdav).

Ho na le morero oa ho aha li-module tsa Nginx + - sehahi sa nginx. Haeba u sebelisa nginx + wevdav ho kenya lifaele, joale u hloka mojule nginx-dav-ext-module. Ha u leka ho haha ​​​​le ho sebelisa Nginx ka nginx-dav-ext-module ka thuso ea sehahi sa nginx re tla fumana phoso E sebelisoa ke http_dav_module sebakeng sa nginx-dav-ext-module. Eona kokoanyana e ile ea koaloa hlabula nginx: [hlaha] taelo e sa tsejoeng dav_methods.

Ke entse kopo ea ho hula Kenya cheke git_url bakeng sa e kentsoeng, e entsoeng bocha --ka-{}_module и haeba mojule == "http_dav_module" eketsa --ka. Empa ha lia ka tsa amoheloa.

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>

Ke nahana hore u tla iketsetsa tse ling tsa Apache httpd tlhophiso.

Nginx ka pel'a Apache httpd

Ho fapana le Apache, Nginx e sebelisa mohlala oa kopo e thehiloeng ketsahalong, ho bolelang hore ho hlokahala ts'ebetso e le 'ngoe feela ea seva sa HTTP bakeng sa palo efe kapa efe ea bareki. U ka sebelisa nginx le ho fokotsa mojaro oa seva.

nginx-front.conf config. Ke nahana hore u tla iketsetsa tse ling tsa tlhophiso ea 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;
    }
}

Khoasolla lifaele ka WebDav

Ho khoasolla rpm ho bonolo haholo.

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

Source: www.habr.com

Eketsa ka tlhaloso