Prélude
Per i bisogni persunali in casa, aghju installatu VSphere, nantu à quale aghju un router virtuale è un servitore Ubuntu cum'è un servitore media è una mansa di altre boni, è questu servitore deve esse accessibile da Internet. Ma u prublema hè chì u mo fornitore dà dati statici per soldi, chì pò sempre esse usatu per scopi più utili. Dunque, aghju utilizatu a combinazione ddclient + cloudflare.
Tuttu era bè finu à chì ddclient hà cessatu di travaglià. Dopu avè sbuchjatu un pocu, aghju capitu chì era ghjuntu l'ora di crutches è di e biciclette, postu chì era troppu tempu per truvà u prublema. À a fine, tuttu hè diventatu un picculu demoniu chì funziona solu, è ùn aghju micca bisognu di nunda.
Sè qualchissia hè interessatu, benvenutu à cat.
Strumenti utilizati è cumu "si" travaglia
Allora a prima cosa chì aghju scupertu nantu à u situ web cloudflare hè tuttu ciò chì avete bisognu di sapè
In generale, u wrapper hè statu pigliatu com'è una basa
Aghju pigliatu unu di l'esempii per aghjurnà DNS è aghjunghje l'usu di un schedariu di cunfigurazione è l'abilità di aghjurnà parechji registri A in una zona è, sicuru, un numaru illimitatu di zoni.
A logica hè a siguenti:
- U script riceve una lista di zoni da u schedariu di cunfigurazione è passa per elli
- In ogni zona, u script passa per ogni record DNS di tipu A o AAAA è verifica l'IP Publicu cù u record.
- Se l'IP hè diversu, u cambia; se no, salta l'iterazione di u ciclu è passa à u prossimu.
- Si dorme per u tempu specificatu in a cunfigurazione
Stallazione è cunfigurazione
Puderia esse pussibule di fà un pacchettu .deb, ma ùn sò micca bè in questu, è ùn hè micca cusì difficiule.
Aghju descrittu u prucessu in grande detail in README.md at
Ma solu in casu, l'aghju descrittu in russu in termini generali:
- Assicuratevi di avè installatu python3 è python3-pip, se no, installate (in Windows, python3-pip hè stallatu cù Python)
- Clone o scaricate u repository
- Installa e dipendenze necessarie.
python3 -m pip install -r requirements.txt
- Eseguite u script d'installazione
Per Linux:chmod +x install.sh sudo ./install.sh
Per Windows: windows_install.bat
- Edite u schedariu di cunfigurazione
Per Linux:sudoedit /etc/zen-cf-ddns.conf
Per Windows:
Aprite u schedariu zen-cf-ddns.conf in u cartulare induve installate u script.
Questu hè un schedariu JSON regulare, i paràmetri ùn sò nunda di complicatu - aghju descrittu specificamente 2 diverse zone in questu cum'è un esempiu.
Chì ci hè daretu à l'installatori?
install.sh per Linux:
- Un utilizatore hè creatu per eseguisce u daemon, senza creà un repertoriu di casa è senza a capacità di login.
sudo useradd -r -s /bin/false zen-cf-ddns
- Un schedariu di log hè creatu in /var/log/
- Fate l'utilizatore novu creatu u pruprietariu di u schedariu di log
- I schedari sò copiati in i so posti (config in /etc, file executable in /usr/bin, file service in /lib/systemd/system)
- U serviziu hè attivatu
windows_install.bat per Windows:
- Copia u schedariu eseguibile è di cunfigurazione in un cartulare specificatu da l'utilizatore
- Crea un compitu in u pianificatore per eseguisce u script à l'iniziu di u sistema
schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart
Dopu avè cambiatu a cunfigurazione, u script deve esse riavviatu; in Linux tuttu hè simplice è familiar:
sudo service zen-cf-ddns start
sudo service zen-cf-ddns stop
sudo service zen-cf-ddns restart
sudo service zen-cf-ddns status
per Windows, duverete tumbà u prucessu pythonw è ripiglià u script (sò troppu pigro per scrive un serviziu per Windows in C#):
taskkill /im pythonw.exe
Questu compie a stallazione è a cunfigurazione, gode di a vostra salute.
Per quelli chì volenu vede u codice Python micca cusì bellu, quì hè
Licenziatu MIT, cusì fate cù queste cose ciò chì vulete.
PS: Capiscu chì hè diventatu un pocu di crutch, ma face u so travagliu cù un bang.
UPD: 11.10.2019/17/37 XNUMX:XNUMX
Aghju trovu 1 prublema più, è se qualcunu mi dice cumu risolve, vi saraghju assai grati.
U prublema hè chì si stallanu dependenzii senza sudo python -m pip install -r ..., allora i moduli ùn saranu micca visibili da l'utilizatori di serviziu, è ùn vogliu micca furzà l'utilizatori à installà moduli sottu sudo, è questu hè micca currettu.
Cumu fà vede bella?
UPD: 11.10.2019/19/16 XNUMX:XNUMX U prublema hè stata risolta cù venv.
Ci sò stati parechji cambiamenti. A prossima liberazione serà in i prossimi ghjorni.
Source: www.habr.com