DNS ti o ni agbara ti ara rẹ nipa lilo CloudFlare

Ọrọ iṣaaju

DNS ti o ni agbara ti ara rẹ nipa lilo CloudFlare Fun awọn iwulo ti ara ẹni ni ile, Mo fi sori ẹrọ VSphere, lori eyiti Mo nṣiṣẹ olulana foju kan ati olupin Ubuntu kan bi olupin media ati opo ti awọn ire miiran, ati pe olupin yii yẹ ki o wa lati Intanẹẹti. Ṣugbọn iṣoro naa ni pe olupese mi n fun data aimi fun owo, eyiti o le ṣee lo nigbagbogbo fun awọn idi to wulo diẹ sii. Nitorinaa, Mo lo apapọ ddclient + cloudflare.

Ohun gbogbo ti dara titi ddclient duro ṣiṣẹ. Lẹ́yìn tí mo ti yípo díẹ̀, mo wá rí i pé àkókò ti tó fún àwọn èèkàn àti kẹ̀kẹ́, níwọ̀n bí ó ti ń gba àkókò púpọ̀ jù láti wá ìṣòro náà. Ni ipari, ohun gbogbo yipada si kekere daemon ti o kan ṣiṣẹ, ati pe Emi ko nilo ohunkohun miiran.
Ti enikeni ba nife, kaabo si ologbo.

Awọn irinṣẹ ti a lo ati bii “o” ṣe n ṣiṣẹ

Nitorinaa ohun akọkọ ti Mo rii lori oju opo wẹẹbu cloudflare ni ohun gbogbo ti o nilo lati mọ nipa API. Ati pe Mo fẹrẹ bẹrẹ imuse ohun gbogbo ni Python (lẹhin ti o mọ Python, Mo lo pupọ sii fun diẹ ninu awọn iṣẹ ṣiṣe ti o rọrun tabi nigbati Mo nilo lati yara ṣe apẹrẹ), nigbati Mo lojiji pade imuse ti o ti ṣetan.
Ni gbogbogbo, a mu apẹja naa gẹgẹbi ipilẹ Python-cloudflare.

Mo mu ọkan ninu awọn apẹẹrẹ fun imudojuiwọn DNS ati ṣafikun lilo faili atunto kan ati agbara lati ṣe imudojuiwọn ọpọlọpọ awọn igbasilẹ A laarin agbegbe kan ati, dajudaju, nọmba ailopin ti awọn agbegbe.

Awọn ogbon ni bi wọnyi:

  1. Iwe afọwọkọ naa gba atokọ ti awọn agbegbe lati faili iṣeto ati awọn losiwajulosehin nipasẹ wọn
  2. Ni agbegbe kọọkan, iwe afọwọkọ naa ṣe igbasilẹ nipasẹ igbasilẹ DNS kọọkan ti iru A tabi AAAA ati ṣayẹwo IP gbangba pẹlu igbasilẹ naa.
  3. Ti IP naa ba yatọ, o yipada; ti kii ba ṣe bẹ, o fo aṣetunṣe lupu ati gbe siwaju si ọkan ti n bọ.
  4. Ṣubu sun oorun fun awọn akoko pato ninu awọn konfigi

Fifi sori ẹrọ ati iṣeto ni

O yoo ṣee ṣe lati ṣe package .deb, ṣugbọn Emi ko dara ni eyi, ati pe kii ṣe gbogbo nkan naa.
Mo ṣe apejuwe ilana naa ni awọn alaye nla ni README.md ni iwe ipamọ.

Ṣugbọn ni ọran, Emi yoo ṣe apejuwe rẹ ni Russian ni awọn ofin gbogbogbo:

  1. Rii daju pe o ti fi python3 ati python3-pip sori ẹrọ, ti kii ba ṣe bẹ, fi sii (lori Windows, python3-pip ti fi sii pẹlu Python)
  2. Ti ẹda oniye tabi ṣe igbasilẹ ibi ipamọ naa
  3. Fi awọn ipilẹ ti o nilo sori ẹrọ.
    python3 -m pip install -r requirements.txt

  4. Ṣiṣe awọn fifi sori akosile
    Fun Linux:

    chmod +x install.sh
    sudo ./install.sh

    Fun Windows: windows_install.bat

  5. Ṣatunkọ faili iṣeto ni
    Fun Linux:

    sudoedit /etc/zen-cf-ddns.conf

    Fun Windows:

    Ṣii faili zen-cf-ddns.conf ninu folda nibiti o ti fi iwe afọwọkọ naa sori ẹrọ.

    Eyi jẹ faili JSON deede, awọn eto ko ni idiju - Mo ṣe apejuwe ni pato awọn agbegbe oriṣiriṣi 2 ninu rẹ bi apẹẹrẹ.

Kini o wa lẹhin awọn fifi sori ẹrọ?

install.sh fun Linux:

  1. A ṣẹda olumulo kan lati ṣiṣẹ daemon, laisi ṣiṣẹda itọsọna ile ati laisi agbara lati buwolu wọle.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. A ṣẹda faili log ni /var/log/
  3. Ṣe olumulo tuntun ti a ṣẹda ni oniwun faili log
  4. Awọn faili ti wa ni daakọ si awọn aaye wọn (tunto ni / ati be be lo, faili ti o ṣiṣẹ ni / usr/bin, faili iṣẹ ni / lib/systemd/system)
  5. Iṣẹ naa ti mu ṣiṣẹ

windows_install.bat fun Windows:

  1. Ṣe adakọ iṣẹ ṣiṣe ati faili iṣeto si folda ti olumulo kan pato
  2. Ṣẹda iṣẹ-ṣiṣe kan ninu oluṣeto lati ṣiṣe iwe afọwọkọ ni ibẹrẹ eto
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

Lẹhin iyipada atunto, iwe afọwọkọ naa nilo lati tun bẹrẹ; ni Linux ohun gbogbo rọrun ati faramọ:

sudo service zen-cf-ddns start
sudo service zen-cf-ddns stop
sudo service zen-cf-ddns restart
sudo service zen-cf-ddns status

fun Windows iwọ yoo ni lati pa ilana pythonw ati tun-ṣiṣẹ iwe afọwọkọ naa (Mo jẹ ọlẹ pupọ lati kọ iṣẹ kan fun Windows ni C #):

taskkill /im pythonw.exe

Eyi pari fifi sori ẹrọ ati iṣeto ni, gbadun rẹ si ilera rẹ.

Fun awọn ti o fẹ lati rii koodu Python ti kii ṣe-lẹwa, eyi ni ibi ipamọ lori GitHub.

MIT ni iwe-aṣẹ, nitorinaa ṣe pẹlu nkan yii ohun ti o fẹ.

P.S.: Mo ye mi pe o yipada lati jẹ diẹ ninu crutch, ṣugbọn o ṣe iṣẹ rẹ pẹlu bang kan.

Imudojuiwọn: 11.10.2019/17/37 XNUMX:XNUMX
Mo rii iṣoro 1 diẹ sii, ati pe ti ẹnikan ba sọ fun mi bi o ṣe le yanju rẹ, Emi yoo dupẹ pupọ.
Iṣoro naa ni pe ti o ba fi awọn igbẹkẹle sori ẹrọ laisi sudo python -m pip install -r ..., lẹhinna awọn modulu kii yoo han lati ọdọ olumulo iṣẹ, ati pe Emi kii yoo fẹ lati fi ipa mu awọn olumulo lati fi awọn modulu sori ẹrọ labẹ sudo, ati pe eyi ni ko tọ.
Bawo ni lati jẹ ki o lẹwa?
UPD: 11.10.2019/19/16 XNUMX:XNUMX A yanju iṣoro naa nipa lilo venv.
Orisirisi awọn ayipada ti wa. Itusilẹ atẹle yoo wa ni awọn ọjọ diẹ ti nbọ.

orisun: www.habr.com

Fi ọrọìwòye kun