priekšvārds
Personīgām vajadzībām mājās uzinstalēju VSphere, uz kura kā multivides serveri vadu virtuālo rūteri un Ubuntu serveri un vēl kaudzi citu labumu, un šim serverim vajadzētu būt pieejamam no interneta. Bet problēma ir tā, ka mans pakalpojumu sniedzējs par naudu sniedz statiskus datus, kurus vienmēr var izmantot noderīgākiem mērķiem. Tāpēc es izmantoju kombināciju ddclient + cloudflare.
Viss bija labi, līdz ddclient pārstāja darboties. Nedaudz pamūrējis, sapratu, ka ir pienācis laiks kruķiem un velosipēdiem, jo problēmas atrašana prasīja pārāk daudz laika. Galu galā viss pārvērtās par mazu dēmonu, kas vienkārši darbojas, un man nekas cits nav vajadzīgs.
Ja kādam ir interese, laipni aicināti uz kaķi.
Izmantotie rīki un kā tas darbojas
Tāpēc pirmais, ko es uzzināju cloudflare vietnē, ir viss, kas jums jāzina
Kopumā par pamatu tika ņemts iesaiņojums
Es paņēmu vienu no DNS atjaunināšanas piemēriem un pievienoju konfigurācijas faila izmantošanu un iespēju atjaunināt vairākus A ierakstus zonā un, protams, neierobežotu zonu skaitu.
Loģika ir šāda:
- Skripts saņem zonu sarakstu no konfigurācijas faila un veic cilpas caur tām
- Katrā zonā skripts iziet cauri katram A vai AAAA tipa DNS ierakstam un pārbauda publisko IP ar ierakstu.
- Ja IP atšķiras, tas to maina; ja nē, tas izlaiž cilpas iterāciju un pāriet uz nākamo.
- Aizmieg uz konfigurācijā norādīto laiku
Uzstādīšana un konfigurēšana
Droši vien būtu iespējams izveidot .deb pakotni, bet man tas nav labi, un tas nav nemaz tik grūti.
Es ļoti detalizēti aprakstīju procesu vietnē README.md on
Bet katram gadījumam es to aprakstīšu krievu valodā vispārīgi:
- Pārliecinieties, vai ir instalēti python3 un python3-pip, ja nē, instalējiet to (operētājsistēmā Windows python3-pip ir instalēts kopā ar Python)
- Klonējiet vai lejupielādējiet repozitoriju
- Instalējiet nepieciešamās atkarības.
python3 -m pip install -r requirements.txt
- Palaidiet instalācijas skriptu
Operētājsistēmai Linux:chmod +x install.sh sudo ./install.sh
Operētājsistēmai Windows: windows_install.bat
- Rediģējiet konfigurācijas failu
Operētājsistēmai Linux:sudoedit /etc/zen-cf-ddns.conf
Operētājsistēmai Windows:
Atveriet failu zen-cf-ddns.conf mapē, kurā instalējāt skriptu.
Šis ir parasts JSON fails, iestatījumos nav nekas sarežģīts - kā piemēru tajā īpaši aprakstīju 2 dažādas zonas.
Kas slēpjas aiz uzstādītājiem?
install.sh operētājsistēmai Linux:
- Lietotājs ir izveidots, lai palaistu dēmonu, neveidojot mājas direktoriju un bez iespējas pieteikties.
sudo useradd -r -s /bin/false zen-cf-ddns
- Žurnāla fails tiek izveidots mapē /var/log/
- Padariet jaunizveidoto lietotāju par žurnālfaila īpašnieku
- Faili tiek kopēti savās vietās (config mapē /etc, izpildāmais fails mapē /usr/bin, pakalpojuma fails mapē /lib/systemd/system)
- Pakalpojums ir aktivizēts
windows_install.bat operētājsistēmai Windows:
- Kopē izpildāmo un konfigurācijas failu lietotāja norādītā mapē
- Plānotājā izveido uzdevumu, lai palaistu skriptu sistēmas startēšanas laikā
schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart
Pēc konfigurācijas maiņas skripts ir jārestartē; Linux viss ir vienkāršs un pazīstams:
sudo service zen-cf-ddns start
sudo service zen-cf-ddns stop
sudo service zen-cf-ddns restart
sudo service zen-cf-ddns status
operētājsistēmai Windows jums būs jānogalina pythonw process un atkārtoti jāpalaiž skripts (es esmu pārāk slinks, lai rakstītu pakalpojumu Windows C#):
taskkill /im pythonw.exe
Tas pabeidz instalēšanu un konfigurēšanu, izbaudiet to savai veselībai.
Tiem, kas vēlas redzēt ne pārāk skaisto Python kodu, tas ir šeit
MIT licencēts, tāpēc dariet ar šīm lietām, ko vēlaties.
PS: Es saprotu, ka tas izrādījās mazliet kruķis, bet tas dara savu darbu ar blīkšķi.
UPD: 11.10.2019/17/37 XNUMX:XNUMX
Atradu vēl 1 problēmu, un ja kāds pastāstīs kā to atrisināt, būšu ļoti pateicīgs.
Problēma ir tāda, ka, ja instalējat atkarības bez sudo python -m pip install -r ..., tad moduļi nebūs redzami no pakalpojuma lietotāja, un es negribētu piespiest lietotājus instalēt moduļus zem sudo, un tas ir nav pareizi.
Kā lai tas izskatās skaisti?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Problēma tika atrisināta, izmantojot venv.
Ir notikušas vairākas izmaiņas. Nākamais izlaidums būs tuvāko dienu laikā.
Avots: www.habr.com