Formáli
Fyrir persónulegar þarfir heima setti ég upp VSphere, sem ég keyri sýndarbeini á og Ubuntu server sem miðlara og fullt af öðru góðgæti, og þessi server ætti að vera aðgengilegur af netinu. En vandamálið er að veitandinn minn gefur kyrrstæð gögn fyrir peninga, sem alltaf er hægt að nota í gagnlegri tilgangi. Þess vegna notaði ég samsetninguna ddclient + cloudflare.
Allt var í lagi þar til ddclient hætti að virka. Eftir að hafa pælt aðeins í, áttaði ég mig á því að kominn tími á hækjur og reiðhjól, þar sem það tók of langan tíma að finna vandamálið. Á endanum breyttist allt í lítinn púka sem bara virkar og ég þarf ekkert annað.
Ef einhver hefur áhuga, velkominn í kött.
Verkfæri sem notuð eru og hvernig „það“ virkar
Svo það fyrsta sem ég komst að á vefsíðu cloudflare er allt sem þú þarft að vita um
Almennt séð var umbúðirnar teknar til grundvallar
Ég tók eitt af dæmunum til að uppfæra DNS og bætti við notkun á stillingarskrá og möguleika á að uppfæra nokkrar A færslur innan svæðis og auðvitað ótakmarkaðan fjölda svæða.
Rökfræðin er sem hér segir:
- Handritið fær lista yfir svæði úr stillingarskránni og fer í gegnum þau
- Á hverju svæði fer handritið í gegnum hverja DNS skrá af gerð A eða AAAA og athugar opinbera IP með skránni
- Ef IP-talan er önnur breytir hún henni; ef ekki, sleppir hún lykkjuendurtekningu og heldur áfram í þá næstu.
- Sofnar þann tíma sem tilgreindur er í stillingunni
Uppsetning og stillingar
Það væri líklega hægt að búa til .deb pakka, en ég er ekki góður í þessu, og það er ekki allt svo erfitt.
Ég lýsti ferlinu í smáatriðum í README.md á
En bara ef ég ætla að lýsa því á rússnesku almennt:
- Gakktu úr skugga um að þú hafir python3 og python3-pip uppsett, ef ekki, settu það upp (í Windows er python3-pip sett upp ásamt Python)
- Klóna eða hlaða niður geymslunni
- Settu upp nauðsynlegar ósjálfstæði.
python3 -m pip install -r requirements.txt
- Keyrðu uppsetningarforskriftina
Fyrir Linux:chmod +x install.sh sudo ./install.sh
Fyrir Windows: windows_install.bat
- Breyttu stillingarskránni
Fyrir Linux:sudoedit /etc/zen-cf-ddns.conf
Fyrir Windows:
Opnaðu zen-cf-ddns.conf skrána í möppunni þar sem þú settir upp handritið.
Þetta er venjuleg JSON skrá, stillingarnar eru ekkert flóknar - ég lýsti sérstaklega 2 mismunandi svæðum í henni sem dæmi.
Hvað er á bak við uppsetningartækin?
install.sh fyrir Linux:
- Notandi er búinn til til að keyra púkann, án þess að búa til heimaskrá og án þess að geta skráð sig inn.
sudo useradd -r -s /bin/false zen-cf-ddns
- Notkunarskrá er búin til í /var/log/
- Gerðu nýstofnaðan notanda að eiganda annálaskrárinnar
- Skrárnar eru afritaðar á þeirra staði (config í /etc, keyranleg skrá í /usr/bin, þjónustuskrá í /lib/systemd/system)
- Þjónustan er virkjuð
windows_install.bat fyrir Windows:
- Afritar keyrslu- og stillingarskrána í notandatilgreinda möppu
- Býr til verkefni í tímaáætlun til að keyra skriftuna við ræsingu kerfisins
schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart
Eftir að stillingunni hefur verið breytt þarf að endurræsa handritið; í Linux er allt einfalt og kunnuglegt:
sudo service zen-cf-ddns start
sudo service zen-cf-ddns stop
sudo service zen-cf-ddns restart
sudo service zen-cf-ddns status
fyrir Windows verður þú að drepa pythonw ferlið og keyra skriftuna aftur (ég er of latur til að skrifa þjónustu fyrir Windows í C#):
taskkill /im pythonw.exe
Þetta lýkur uppsetningu og stillingu, njóttu þess að heilsu þinni.
Fyrir þá sem vilja sjá ekki svo fallega Python kóðann, hér er hann
MIT leyfi, svo gerðu með þetta dót það sem þú vilt.
PS: Mér skilst að það hafi reynst vera hálfgert hækja, en það skilar sínu með glæsibrag.
Uppfært: 11.10.2019/17/37 XNUMX:XNUMX
Ég fann eitt vandamál í viðbót og ef einhver segir mér hvernig ég á að leysa það, þá verð ég mjög þakklátur.
Vandamálið er að ef þú setur upp ósjálfstæði án sudo python -m pip install -r ..., þá verða einingarnar ekki sýnilegar frá þjónustunotandanum, og ég myndi ekki vilja neyða notendur til að setja upp einingar undir sudo, og þetta er ekki rétt.
Hvernig á að láta það líta fallegt út?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Vandamálið var leyst með venv.
Það hafa orðið nokkrar breytingar. Næsta útgáfa kemur á næstu dögum.
Heimild: www.habr.com