Daħla
Għal bżonnijiet personali fid-dar, installajt VSphere, li fuqu nmexxi router virtwali u server Ubuntu bħala server tal-midja u mazz ta 'goodies oħra, u dan is-server għandu jkun aċċessibbli mill-Internet. Iżda l-problema hija li l-fornitur tiegħi jagħti data statika għall-flus, li dejjem tista 'tintuża għal skopijiet aktar utli. Għalhekk, użajt il-kombinazzjoni ddclient + cloudflare.
Kollox kien tajjeb sakemm ddclient waqaf jaħdem. Wara li ddawwar ftit, indunajt li kien wasal iż-żmien għall-krozzi u r-roti, peress li kien qed jieħu wisq ħin biex issib il-problema. Fl-aħħar, kollox inbidel f'daemon żgħir li jaħdem biss, u m'għandi bżonn xi ħaġa oħra.
Jekk xi ħadd hu interessat, merħba lil cat.
Għodod użati u kif taħdem
Allura l-ewwel ħaġa li sibt fuq il-websajt cloudflare hija dak kollu li għandek bżonn tkun taf dwaru
B'mod ġenerali, it-tgeżwir ittieħdet bħala bażi
Ħadt wieħed mill-eżempji għall-aġġornament tad-DNS u żidt l-użu ta 'fajl ta' konfigurazzjoni u l-abbiltà li taġġorna diversi rekords A f'żona u, ovvjament, numru illimitat ta 'żoni.
Il-loġika hija kif ġej:
- L-iskript jirċievi lista ta 'żoni mill-fajl tal-konfigurazzjoni u jgħaddi minnhom
- F'kull żona, l-iskript jgħaddi minn kull rekord DNS tat-tip A jew AAAA u jiċċekkja l-IP Pubbliku bir-rekord
- Jekk l-IP huwa differenti, jibdelha; jekk le, taqbeż l-iterazzjoni tal-linja u tgħaddi għal dik li jmiss.
- torqod għall-ħin speċifikat fil-konfigurazzjoni
Installazzjoni u konfigurazzjoni
Probabbilment ikun possibbli li tagħmel pakkett .deb, imma jien mhux tajjeb f'dan, u mhux daqshekk diffiċli.
Iddeskrivejt il-proċess f'dettall kbir f'README.md fuq
Imma fil-każ, ser niddeskriviha bir-Russu f'termini ġenerali:
- Kun żgur li għandek installati python3 u python3-pip, jekk le, installahom (fuq Windows, python3-pip huwa installat flimkien ma 'Python)
- Ikklonja jew tniżżel ir-repożitorju
- Installa d-dipendenzi meħtieġa.
python3 -m pip install -r requirements.txt
- Mexxi l-iskrittura tal-installazzjoni
Għal Linux:chmod +x install.sh sudo ./install.sh
Għall-Windows: windows_install.bat
- Editja l-fajl tal-konfigurazzjoni
Għal Linux:sudoedit /etc/zen-cf-ddns.conf
Għal Windows:
Iftaħ il-fajl zen-cf-ddns.conf fil-folder fejn installajt l-iskript.
Dan huwa fajl JSON regolari, is-settings m'huma xejn ikkumplikat - I ddeskriviet speċifikament 2 żoni differenti fiha bħala eżempju.
X'hemm wara l-installaturi?
install.sh għal Linux:
- Jinħoloq utent biex imexxi d-daemon, mingħajr ma jinħoloq direttorju tad-dar u mingħajr il-ħila li jidħol.
sudo useradd -r -s /bin/false zen-cf-ddns
- Inħoloq log file f'/var/log/
- Agħmel l-utent maħluq ġdid is-sid tal-fajl tal-ġurnal
- Il-fajls huma kkupjati fil-postijiet tagħhom (konfigurazzjoni f'/etc, fajl eżekutibbli f'/usr/bin, fajl tas-servizz f'/lib/systemd/system)
- Is-servizz huwa attivat
windows_install.bat għall-Windows:
- Kopji tal-fajl eżekutibbli u tal-konfigurazzjoni għal folder speċifikat mill-utent
- Joħloq kompitu fl-iskedar biex iħaddem l-iskritt fl-istartjar tas-sistema
schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart
Wara li tinbidel il-konfigurazzjoni, l-iskript jeħtieġ li jerġa' jinbeda; fil-Linux kollox huwa sempliċi u familjari:
sudo service zen-cf-ddns start
sudo service zen-cf-ddns stop
sudo service zen-cf-ddns restart
sudo service zen-cf-ddns status
għall-Windows ser ikollok toqtol il-proċess pythonw u terġa 'tmexxi l-iskrittura (Jien għażżien wisq biex nikteb servizz għall-Windows f'C#):
taskkill /im pythonw.exe
Dan jikkompleta l-installazzjoni u l-konfigurazzjoni, igawduha għas-saħħa tiegħek.
Għal dawk li jridu jaraw il-kodiċi Python mhux daqshekk sabiħ, hawn hu
Liċenzjati mill-MIT, hekk agħmel b'dan l-għalf dak li trid.
PS: Nifhem li rriżulta li kien daqsxejn ta 'crutch, iżda jagħmel xogħolha b'bang.
UPD: 11.10.2019/17/37 XNUMX:XNUMX
Sibt problema 1 oħra, u jekk xi ħadd jgħidli kif se nsolviha, inkun grat ħafna.
Il-problema hija li jekk tinstalla dipendenzi mingħajr sudo python -m pip install -r ..., allura l-moduli ma jkunux viżibbli mill-utent tas-servizz, u ma nixtieqx inġiegħel lill-utenti jinstallaw moduli taħt sudo, u dan huwa mhux korrett.
Kif tagħmel jidher sabiħ?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Il-problema ġiet solvuta bl-użu ta' venv.
Kien hemm diversi bidliet. Ir-rilaxx li jmiss se jkun fil-jiem li ġejjin.
Sors: www.habr.com