ಈ ಪೋಸ್ಟ್ನಲ್ಲಿ, ನಾವು ಸರಳವಾದ inotify + createrepo ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು rpm ಆರ್ಟಿಫ್ಯಾಕ್ಟ್ ರೆಪೊಸಿಟರಿಯನ್ನು ನೋಡುತ್ತೇವೆ. ಅಪಾಚೆ httpd ಅನ್ನು ಬಳಸಿಕೊಂಡು ವೆಬ್ಡಾವ್ ಮೂಲಕ ಕಲಾಕೃತಿಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ. ಏಕೆ ಅಪಾಚೆ 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. ಬ್ಲಾಬ್ ಎಂದಿಗೂ ಚೇತರಿಸಿಕೊಳ್ಳಲಿಲ್ಲ.
ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ 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.
ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪರಿಹಾರದಿಂದ ಹೆಚ್ಚಿನ ಲಭ್ಯತೆಯನ್ನು ಮಾಡಲು, ನೀವು 2 ಸರ್ವರ್ಗಳನ್ನು ಬಳಸಬಹುದು, HA ಗಾಗಿ Keepalived ಮತ್ತು ಆರ್ಟಿಫ್ಯಾಕ್ಟ್ ಸಿಂಕ್ರೊನೈಸೇಶನ್ಗಾಗಿ Lsyncd. Lsyncd - ಸ್ಥಳೀಯ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿನ ಬದಲಾವಣೆಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಡೀಮನ್, ಅವುಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸುತ್ತದೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಸಮಯದ ನಂತರ, rsync ಅವುಗಳನ್ನು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ವಿವರಗಳು ಮತ್ತು ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪೋಸ್ಟ್ನಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ "ಒಂದು ಬಿಲಿಯನ್ ಫೈಲ್ಗಳ ವೇಗದ ಸಿಂಕ್ರೊನೈಸೇಶನ್".
ವೆಬ್ಡವ್
ಫೈಲ್ಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಲು ಹಲವಾರು ಮಾರ್ಗಗಳಿವೆ: SSH, NFS, WebDav. WebDav ಆಧುನಿಕ ಮತ್ತು ಸರಳ ಆಯ್ಕೆಯಾಗಿದೆ.
WebDav ಗಾಗಿ, ನಾವು Apache httpd ಅನ್ನು ಬಳಸುತ್ತೇವೆ. ಏಕೆ 2020 ರಲ್ಲಿ ಅಪಾಚೆ httpd ಮತ್ತು nginx ಅಲ್ಲ?
ನಾನು Nginx + ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಸ್ವಯಂಚಾಲಿತ ಸಾಧನಗಳನ್ನು ಬಳಸಲು ಬಯಸುತ್ತೇನೆ (ಉದಾಹರಣೆಗೆ, Webdav).
ಉಳಿದ ಅಪಾಚೆ httpd ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನೀವೇ ಮಾಡುತ್ತೀರಿ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.
ಅಪಾಚೆ httpd ಮುಂದೆ Nginx
Apache ಗಿಂತ ಭಿನ್ನವಾಗಿ, Nginx ಈವೆಂಟ್-ಆಧಾರಿತ ವಿನಂತಿ ಪ್ರಕ್ರಿಯೆ ಮಾದರಿಯನ್ನು ಬಳಸುತ್ತದೆ, ಅಂದರೆ ಯಾವುದೇ ಸಂಖ್ಯೆಯ ಕ್ಲೈಂಟ್ಗಳಿಗೆ ಕೇವಲ ಒಂದು HTTP ಸರ್ವರ್ ಪ್ರಕ್ರಿಯೆಯ ಅಗತ್ಯವಿದೆ. ನೀವು nginx ಅನ್ನು ಬಳಸಬಹುದು ಮತ್ತು ಸರ್ವರ್ ಲೋಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು.
nginx-front.conf ಸಂರಚನೆ. ಉಳಿದ nginx ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನೀವೇ ಮಾಡುತ್ತೀರಿ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.