Inotify మరియు webdav ఉపయోగించి సాధారణ rpm రిపోజిటరీ
ఈ పోస్ట్లో, మేము సాధారణ inotify + createrepo స్క్రిప్ట్ని ఉపయోగించి rpm ఆర్టిఫ్యాక్ట్ రిపోజిటరీని చూస్తాము. కళాఖండాలు apache httpd ఉపయోగించి webdav ద్వారా అప్లోడ్ చేయబడతాయి. ఎందుకు apache httpd పోస్ట్ చివరిలో వ్రాయబడుతుంది.
కాబట్టి, పరిష్కారం RPM నిల్వను మాత్రమే నిర్వహించడానికి క్రింది అవసరాలను తీర్చాలి:
ఉచిత
ఆర్టిఫ్యాక్ట్ రిపోజిటరీకి అప్లోడ్ చేసిన కొన్ని సెకన్ల తర్వాత రిపోజిటరీలో ప్యాకేజీ లభ్యత.
కళాఖండాలు సోనాటైప్ నెక్సస్ బొట్టులో నిల్వ చేయబడుతుంది. అకస్మాత్తుగా విద్యుత్తు అంతరాయం ఏర్పడిన సందర్భంలో, మీకు బ్యాకప్ లేకపోతే మీరు బొట్టుని పునరుద్ధరించలేరు. మాకు ఈ లోపం ఉంది: 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. బొట్టు ఎప్పుడూ కోలుకోలేదు.
మీరు ఫైల్లో ఈ డైరెక్టరీని మార్చవచ్చు /etc/inotify-createrepo.conf.
ఉపయోగం
ఏదైనా ఫైల్ని డైరెక్టరీకి జోడించేటప్పుడు /var/www/repos/rpm-repo/ inotifywait ఫైల్ను సృష్టిస్తుంది /tmp/need_create. run_createrepo ఫంక్షన్ అనంతమైన లూప్లో నడుస్తుంది మరియు ఫైల్ను పర్యవేక్షిస్తుంది /tmp/need_create. ఫైల్ ఉనికిలో ఉంటే, ఆపై అమలు చేయండి createrepo --update.
ఇప్పటికే ఉన్న పరిష్కారం నుండి అధిక లభ్యతను పొందడానికి, మీరు 2 సర్వర్లను ఉపయోగించవచ్చు, HA కోసం Keepalived మరియు ఆర్టిఫ్యాక్ట్ సింక్రొనైజేషన్ కోసం Lsyncd. Lsyncd - స్థానిక డైరెక్టరీలో మార్పులను పర్యవేక్షించే డెమోన్, వాటిని సమగ్రం చేస్తుంది మరియు నిర్దిష్ట సమయం తర్వాత, rsync వాటిని సమకాలీకరించడం ప్రారంభిస్తుంది. వివరాలు మరియు సెట్టింగ్లు పోస్ట్లో వివరించబడ్డాయి "బిలియన్ ఫైల్ల వేగవంతమైన సమకాలీకరణ".
వెబ్డావ్
ఫైల్లను అప్లోడ్ చేయడానికి అనేక మార్గాలు ఉన్నాయి: SSH, NFS, WebDav. WebDav ఒక ఆధునిక మరియు సులభమైన ఎంపికగా కనిపిస్తోంది.
WebDav కోసం, మేము Apache httpdని ఉపయోగిస్తాము. 2020లో అపాచీ httpd మరియు nginx ఎందుకు కాదు?
నేను Nginx + మాడ్యూల్లను నిర్మించడానికి స్వయంచాలక సాధనాలను ఉపయోగించాలనుకుంటున్నాను (ఉదాహరణకు, Webdav).
మీరు మిగిలిన Apache httpd కాన్ఫిగరేషన్ను మీరే చేస్తారని నేను భావిస్తున్నాను.
అపాచీ httpd ముందు Nginx
Apache కాకుండా, Nginx ఈవెంట్-ఆధారిత అభ్యర్థన ప్రాసెసింగ్ మోడల్ను ఉపయోగిస్తుంది, అంటే ఎన్ని క్లయింట్లకైనా ఒక HTTP సర్వర్ ప్రాసెస్ మాత్రమే అవసరం. మీరు nginxని ఉపయోగించవచ్చు మరియు సర్వర్ లోడ్ను తగ్గించవచ్చు.
nginx-front.conf config. మీరు మిగిలిన nginx కాన్ఫిగరేషన్ను మీరే చేస్తారని నేను భావిస్తున్నాను.