Rhagair
Ar gyfer anghenion personol gartref, gosodais VSphere, lle rwy'n rhedeg llwybrydd rhithwir a gweinydd Ubuntu fel gweinydd cyfryngau a llawer o nwyddau eraill, a dylai'r gweinydd hwn fod yn hygyrch o'r Rhyngrwyd. Ond y broblem yw bod fy narparwr yn rhoi data sefydlog am arian, y gellir ei ddefnyddio bob amser at ddibenion mwy defnyddiol. Felly, defnyddiais y cyfuniad ddclient + cloudflare.
Roedd popeth yn iawn nes i ddclient roi'r gorau i weithio. Ar Γ΄l procio o gwmpas ychydig, sylweddolais fod yr amser wedi dod ar gyfer baglau a beiciau, gan ei bod yn cymryd gormod o amser i ddod o hyd i'r broblem. Yn y diwedd, trodd popeth yn ellyll bach sy'n gweithio, ac nid oes angen unrhyw beth arall arnaf.
Os oes gan unrhyw un ddiddordeb, croeso i gath.
Offer a ddefnyddir a sut mae βmaeβ yn gweithio
Felly y peth cyntaf wnes i ddarganfod ar wefan cloudflare yw popeth sydd angen i chi wybod amdano
Yn gyffredinol, cymerwyd y papur lapio fel sail
Cymerais un o'r enghreifftiau ar gyfer diweddaru DNS ac ychwanegu'r defnydd o ffeil ffurfweddu a'r gallu i ddiweddaru sawl cofnod A o fewn parth ac, wrth gwrs, nifer anghyfyngedig o barthau.
Mae'r rhesymeg fel a ganlyn:
- Mae'r sgript yn derbyn rhestr o barthau o'r ffeil ffurfweddu a dolenni trwyddynt
- Ym mhob parth, mae'r sgript yn dolennu trwy bob cofnod DNS o fath A neu AAAA ac yn gwirio'r IP Cyhoeddus gyda'r cofnod
- Os yw'r IP yn wahanol, mae'n ei newid; os na, mae'n hepgor iteriad y ddolen ac yn symud ymlaen i'r un nesaf.
- Yn cwympo i gysgu am yr amser a nodir yn y ffurfwedd
Gosod a chyfluniad
Mae'n debyg y byddai'n bosibl gwneud pecyn .deb, ond nid wyf yn dda am wneud hyn, ac nid yw mor anodd Γ’ hynny.
Disgrifiais y broses yn fanwl iawn yn README.md yn
Ond rhag ofn, byddaf yn ei ddisgrifio yn Rwsieg yn gyffredinol:
- Sicrhewch fod gennych python3 a python3-pip wedi'u gosod, os na, gosodwch ef (ar Windows, mae python3-pip wedi'i osod ynghyd Γ’ Python)
- Cloniwch neu lawrlwythwch yr ystorfa
- Gosodwch y dibyniaethau gofynnol.
python3 -m pip install -r requirements.txt
- Rhedeg y sgript gosod
Ar gyfer Linux:chmod +x install.sh sudo ./install.sh
Ar gyfer Windows: windows_install.bat
- Golygu'r ffeil ffurfweddu
Ar gyfer Linux:sudoedit /etc/zen-cf-ddns.conf
Ar gyfer Windows:
Agorwch y ffeil zen-cf-ddns.conf yn y ffolder lle gwnaethoch chi osod y sgript.
Mae hon yn ffeil JSON rheolaidd, nid yw'r gosodiadau yn ddim byd cymhleth - disgrifiais yn benodol 2 barth gwahanol ynddo fel enghraifft.
Beth sydd y tu Γ΄l i'r gosodwyr?
install.sh ar gyfer Linux:
- CrΓ«ir defnyddiwr i redeg yr ellyll, heb greu cyfeiriadur cartref a heb y gallu i fewngofnodi.
sudo useradd -r -s /bin/false zen-cf-ddns
- CrΓ«ir ffeil log yn /var/log/
- Gwnewch y defnyddiwr sydd newydd ei greu yn berchennog y ffeil log
- Mae'r ffeiliau'n cael eu copΓ―o i'w lleoedd (config in / etc, ffeil gweithredadwy yn /usr/bin, ffeil gwasanaeth yn /lib/systemd/system)
- Mae'r gwasanaeth wedi'i actifadu
windows_install.bat ar gyfer Windows:
- Yn copΓ―o'r ffeil gweithredadwy a ffurfweddu i ffolder a bennir gan y defnyddiwr
- Yn creu tasg yn y rhaglennydd i redeg y sgript wrth gychwyn y system
schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart
Ar Γ΄l newid y ffurfwedd, mae angen ailgychwyn y sgript; yn Linux mae popeth yn syml ac yn gyfarwydd:
sudo service zen-cf-ddns start
sudo service zen-cf-ddns stop
sudo service zen-cf-ddns restart
sudo service zen-cf-ddns status
ar gyfer Windows bydd yn rhaid i chi ladd y broses pythonw ac ail-redeg y sgript (dwi'n rhy ddiog i ysgrifennu gwasanaeth ar gyfer Windows yn C#):
taskkill /im pythonw.exe
Mae hyn yn cwblhau'r gosodiad a'r cyfluniad, mwynhewch ef i'ch iechyd.
I'r rhai sydd am weld y cod Python nad yw'n bert, dyma fe
MIT trwyddedig, felly gwnewch gyda'r pethau hyn yr hyn y byddwch.
PS: Yr wyf yn deall ei fod yn troi allan i fod yn dipyn o faglau, ond mae'n gwneud ei waith gyda chlec.
UPD: 11.10.2019/17/37 XNUMX:XNUMX
Deuthum o hyd i 1 broblem arall, ac os bydd rhywun yn dweud wrthyf sut i'w datrys, byddaf yn ddiolchgar iawn.
Y broblem yw, os ydych chi'n gosod dibyniaethau heb sudo python -m pip install -r ..., yna ni fydd y modiwlau yn weladwy o'r defnyddiwr gwasanaeth, ac ni hoffwn orfodi defnyddwyr i osod modiwlau o dan sudo, a dyma anghywir.
Sut i wneud iddo edrych yn hardd?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Datryswyd y broblem gan ddefnyddio venv.
Bu sawl newid. Bydd y datganiad nesaf yn ystod y dyddiau nesaf.
Ffynhonnell: hab.com