Ebe nchekwa rpm dị mfe site na iji Inotify na webdav

Na post a, anyị ga-elele nchekwa rpm artifact site na iji edemede dị mfe na inotify + createrepo. A na-ebulite ihe ochie site na webdav site na iji apache httpd. Kedu ihe kpatara a ga-eji dee apache httpd na njedebe nke post.

Yabụ, ihe ngwọta ahụ ga-emezurịrị ihe ndị a chọrọ maka ịhazi naanị nchekwa RPM:

  • N'efu

  • Nnweta ngwugwu n'ime ebe nchekwa sekọnd ole na ole ka ebulitechara na ebe nchekwa ihe.

  • Ọ dị mfe ịwụnye na idobe

  • Ikike ime ka nnweta dị elu

    Gịnị mere SonaType Nexus ma ọ bụ Pulp:

  • Nchekwa na SonaType Nexus ma ọ bụ Pulp ọtụtụ ụdị artifact na-eduga n'eziokwu ahụ SonaType Nexus ma ọ bụ Pulp bụrụ otu ebe ọdịda.

  • Nnukwu nnweta na SonaType Nexus na-akwụ ụgwọ.

  • Pulp Ọ dị m ka ihe ngwọta gbagwojuru anya.

  • Artifacts na SonaType Nexus na-echekwara na blob. Ọ bụrụ na enwere mwepu ọkụ na mberede, ị gaghị enwe ike iweghachi blob ma ọ bụrụ na ịnweghị nkwado ndabere. Anyị nwere njehie a: 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. Ọ dịghị mgbe eweghachiri Blob.

Koodu e si nweta ya

→ Koodu isi mmalite dị ebe a

Edemede isi dị ka nke a:

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

ọnọdụ

Inotify-createrepo na-arụ ọrụ naanị na CentOS 7 ma ọ bụ karịa. Enweghị ike ime ya ka ọ rụọ ọrụ na CentOS 6.

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

Nhazi

Site na ndabara, inotify-createrepo na-enyocha ndekọ ndekọ /var/www/repos/rpm-repo/.

Ị nwere ike ịgbanwe ndekọ a na faịlụ /etc/inotify-createrepo.conf.

Jiri

Mgbe ị na-agbakwunye faịlụ ọ bụla na ndekọ /var/www/repos/rpm-repo/ inotifywait ga-emepụta faịlụ ahụ /tmp/need_create. Ọrụ run_createrepo na-agba ọsọ na akaghị ngwụcha wee nyochaa faịlụ ahụ /tmp/need_create. Ọ bụrụ na faịlụ dị, ọ na-agba ọsọ createrepo --update.

Ntinye ga-apụta na faịlụ:

/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

Ikike ime ka nnweta dị elu

Iji mee ka nnweta dị elu site na ngwọta dị adị, echere m na ị nwere ike iji sava 2, Keepalive for HA na Lsyncd maka ịmekọrịta arịa. Lsyncd - daemon nke na-enyocha mgbanwe na ndekọ ndekọ mpaghara, na-achịkọta ha, ma mgbe oge ụfọdụ gasịrị, rsync malitere imekọrịta ha. A kọwara nkọwa na nhazi ya na post ahụ "Ngwa ngwa mmekọrịta nke otu ijeri faịlụ".

Weebụ

Ị nwere ike bulite faịlụ n'ọtụtụ ụzọ: SSH, NFS, WebDav. WebDav yiri ka ọ bụ nhọrọ ọgbara ọhụrụ na dị mfe.

Maka WebDav anyị ga-eji Apache httpd. Kedu ihe kpatara Apache httpd na 2020 ọ bụghị nginx?

Ọ ga-amasị m iji ngwaọrụ akpaghị aka maka iwulite modul Nginx + (dịka ọmụmaatụ, Webdav).

Enwere oru ngo iji wuo Nginx + modul - Nginx-ewu. Ọ bụrụ na iji nginx + wevdav bulite faịlụ, ịchọrọ modul nginx-dav-ext-modul. Mgbe ị na-agbalị iji Nginx wuo ma jiri ya nginx-dav-ext-modul site n'enyemaka Nginx-ewu anyị ga-enweta njehie http_dav_module na-eji kama nginx-dav-ext-module. A na-emechi otu ahụhụ ahụ n'oge okpomọkụ nginx: [emerg] ntuziaka amaghi ama dav_methods.

Emere m arịrịọ Pull Tinye nlele git_url maka agbakwunyere, emegharịrị —na-{}_module и ọ bụrụ modul == "http_dav_module" gbakwunyere --ya. Mana anabataghị ha.

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

Echere m na ị nwere ike ịme ntọala Apache httpd ndị ọzọ n'onwe gị.

Nginx tupu Apache httpd

N'adịghị ka Apache, Nginx na-eji usoro nhazi arịrịọ dabere na mmemme, nke chọrọ naanị otu usoro sava HTTP maka ọnụ ọgụgụ ndị ahịa ọ bụla. Ị nwere ike iji nginx ma belata ibu na ihe nkesa ahụ.

Hazie nginx-front.conf. Echere m na ị nwere ike ịme nhazi nginx ndị ọzọ n'onwe gị.

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

Na-ebugote faịlụ site na WebDav

Ịbudata rpm dị nnọọ mfe.

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

isi: www.habr.com

Tinye a comment