conorcunningham / google-DDNS

NB acest proiect necesită utilizarea Google Cloud, iar Google Cloud necesită autentificare. Mai exact, în acest proiect și atunci când utilizați DNS-ul Google Cloud, este necesară o cheie API. Este efectiv gratuit să utilizați Google DNS pentru testare, dar este totuși necesar un cont.

am scris asta pentru a rezolva o problemă pe care o aveam acasă și a ajuns să-mi economisească 100 USD pe an. Mulțumesc, Python! Vă mulțumim CS50!

am deschis acest proiect pentru a fi utilizat de toți.

mai mult, aceasta este în mod deliberat o aplicație cu un singur fișier. Acesta este conceput pentru a fi ușor de clonat și de utilizat, prin urmare, open source, și este proiectat pentru a fi utilizat cu un serviciu Linux, astfel încât să poată rula în fundal. Teoretic poate fi rulat pe toate platformele, MAC, Windows, Linux, dispozitive Linux încorporate și echipamente de rețea de domiciliu.

am testat acest lucru pe Windows 10, Debian 9 Stretch și Max OSX Mojave.

am avut un hoot luând CS50 web și sunt în prezent lucrează la proiectul meu final pentru CS50 Web.

noroc,

Conor

client DNS dinamic Google Cloud

acesta este un script DNS dinamic simplu pentru Google Cloud DNS. Scriptul va verifica adresa IP publică și apoi, pe baza configurației sale, va citi din fișierul de configurare, va verifica dacă Google Cloud DNS are o intrare DNS corespunzătoare. Dacă nu se găsește nicio intrare corespunzătoare, scriptul va crea unul. Dacă se găsește o intrare corespunzătoare, dar are o adresă IP care nu se potrivește cu cea a scriptului găsit, atunci scriptul se va actualiza apoi intrarea Google Cloud (citiți ștergerea, apoi creați). În cele din urmă, dacă fișierul de configurare a scripturilor se potrivește cu cel al intrării Google Cloud DNS, atunci acesta va dormi pentru un interval de x, iar procesul se repetă.

acest proiect este format din următoarele componente:

  • gcloud-ddns.py: scriptul client dns dinamic
  • ddns-conf.yaml: fișier de configurare programe
  • cerințe.txt: cerințe pentru a fi instalat

cerințe

acest script necesită Python 3.6 sau mai mare. F-siruri de caractere sunt utilizate pe scară largă. Cerințele pachetului sunt enumerate în cerințe.txt

utilizare

Usage: python gcloud-ddns.py 

configurare

$ git clone [email protected]:conorcunningham/google-ddns.git$ cd google-ddns$ python3 gcloud-ddns.py

scriptul va rula în prim-plan. Mă voi juca cu el și îl voi testa pentru a vedea dacă poate funcționa în mod fiabil ca serviciu.

fișier de configurare

configurația scriptului este citită dintr-un fișier yaml. Iată conținutul exemplului ddns-conf.fișier yaml

api-key: './ddns-api-key.json'logfile: './ddns.log'hosts: - host: 'firewall.example.com.' project_id: 'fluffy-penguin-242411' managed_zone: 'example' domain: 'example.com' ttl: 60 interval: 600 - host: 'www.example-two.com.' project_id: 'fluffy-penguin-242411' managed_zone: 'example-two' domain: 'example-two.com' ttl: 60 interval: 600

scriptul acceptă un argument CLI opțional, care este calea către fișierul de configurare. Dacă nu este dat niciunul, scriptul va căuta ddns-config.yaml în același director ca scriptul.

  • gazdă: numele de domeniu complet calificat al gazdei pe care doriți să o setați. NB* trebuie să includă . după. com. Aceasta este o cerință Google/
  • project_id: ID-ul dvs. de proiect în Google Cloud
  • managed_zone: numele zonei gestionate în Google Cloud
  • domeniu: numele dvs. de domeniu
  • ttl: numărul de secunde pentru TTL
  • interval: cât timp scriptul va dormi înainte de a rula din nou
  • API-key: calea către cheia API în format JSON
  • log-Path: Calea către fișierul jurnal

autentificare

pentru a utiliza API-ul Google Cloud, veți avea nevoie de o cheie API pentru contul dvs. Această cheie va fi un fișier json și trebuie configurată în fișierul de configurare.

scriptul va seta GOOGLE_APPLICATION_CREDENTIALS variabila de mediu la calea cheii API, iar modulele Google vor folosi această variabilă de mediu pentru a gestiona autentificarea.

os.environ = api_key

Docker

un fișier Dockerfile este inclus în depozit, astfel încât să puteți lansa acest container în interiorul unei instanțe Docker.

docker build -t google-ddns .

comanda implicită docker așteaptă o configurare.fișier yaml în directorul /ddns

docker run -it --rm -v <path/to/config>:/ddns google-ddns

rețineți că căile din interiorul fișierului de configurare sunt relative la container

api-key: '/ddns/ddns-api-key.json'logfile: '/ddns/ddns.log'...

Iată un fișier docker-compose rapid și murdar dacă utilizați asta

version: '3'services: ddns: image: google-ddns volumes: - ./config:/ddns

ipify.org API

acest proiect face uz de snazzy ipify.org API pentru preluarea adresei IP publice a clienților.

Lasă un răspuns

Adresa ta de email nu va fi publicată.

Previous post cum să curățați în mod corespunzător o râșniță de cafea și bavurile sale
Next post Cele mai bune microfoane pentru realizarea de filme: ghidul 2020