Inotify жана webdav аркылуу жөнөкөй rpm репозиторий
Бул постто биз жөнөкөй inotify + createrepo скриптин колдонуу менен rpm артефакт репозиторийсин карайбыз. Артефакттар apache httpd аркылуу webdav аркылуу жүктөлөт. Эмне үчүн apache httpd посттун аягында жазылат.
Ошентип, чечим RPM сактоону уюштуруу үчүн төмөнкү талаптарга жооп бериши керек:
бекер
Артефакт репозиторийине жүктөөдөн кийин бир нече секунддан кийин пакеттин репозиторийде болушу.
орнотуу жана тейлөө үчүн жеңил
Жогорку жеткиликтүүлүктү камсыз кылуу мүмкүнчүлүгү
Артефакттар SonaType Nexus блобдо сакталат. Күтүлбөгөн жерден электр жарыгы өчүп калган учурда, резервдик көчүрмөңүз жок болсо, блобду калыбына келтире албайсыз. Бизде бул ката болду: 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 эч качан калыбына келтирилген эмес.
Демейки боюнча inotify-createrepo каталогду көзөмөлдөйт /var/www/repos/rpm-repo/.
Сиз бул каталогду файлда өзгөртө аласыз /etc/inotify-createrepo.conf.
пайдалануунун
Каталогго каалаган файлды кошкондо /var/www/repos/rpm-repo/ inotifywait файлды түзөт /tmp/need_create. run_createrepo функциясы чексиз циклде иштейт жана файлды көзөмөлдөйт /tmp/need_create. Эгер файл бар болсо, анда иштетиңиз createrepo --update.
Жогорку жеткиликтүүлүктү камсыз кылуу мүмкүнчүлүгү
Учурдагы чечимдин жогорку жеткиликтүүлүгүн камсыз кылуу үчүн, менимче, сиз HA үчүн Keepalived жана артефакт синхрондоштуруу үчүн Lsyncd 2 серверди колдоно аласыз. Lsyncd - жергиликтүү каталогдогу өзгөрүүлөргө көз салган, аларды бириктирүүчү жана белгилүү бир убакыттан кийин rsync аларды синхрондоштурууну баштаган демон. Чоо-жайы жана жөндөөлөрү постто сүрөттөлөт "Бир миллиард файлды тез синхрондоштуруу".
webdav
Файлдарды жүктөөнүн бир нече жолу бар: SSH, NFS, WebDav. WebDav заманбап жана жөнөкөй вариант окшойт.
WebDav үчүн биз Apache httpd колдонобуз. Эмне үчүн nginx эмес, 2020-жылы Apache httpd?
Мен Nginx + модулдарын куруу үчүн автоматташтырылган куралдарды колдонгум келет (мисалы, Webdav).
Мен Apache httpd конфигурациясынын калган бөлүгүн өзүңүз жасайсыз деп ойлойм.
Nginx Apache алдында httpd
Apache'ден айырмаланып, Nginx окуяга негизделген суроо-талаптарды иштетүү моделин колдонот, бул кардарлардын каалаган саны үчүн бир гана HTTP сервер процесси талап кылынат дегенди билдирет. Сиз nginxти колдонуп, сервердин жүгүн азайта аласыз.
nginx-front.conf конфигурациясы. Калган nginx конфигурациясын өзүңүз жасайсыз деп ойлойм.