conorcunningham / google-ddns

NB Questo progetto richiede l’uso di Google Cloud e Google Cloud richiede l’autenticazione. In particolare, in questo progetto e quando si utilizza il DNS di Google Cloud, è necessaria una chiave API. È effettivamente gratuito utilizzare Google DNS per i test, ma è comunque necessario un account.

Ho scritto questo per risolvere un problema che avevo a casa, e alla fine mi ha fatto risparmiare USD 100 USD all’anno. Grazie, Python! Grazie CS50!

Ho aperto questo progetto per tutti da usare.

Inoltre, questo è volutamente un’applicazione di un file. È progettato per essere facile da clonare e utilizzare, quindi l’open source, ed è progettato per essere utilizzato con un servizio Linux in modo che possa essere eseguito in background. Può teoricamente essere eseguito su tutte le piattaforme, MAC, Windows, Linux, dispositivi linux embedded e apparecchiature di rete domestica.

L’ho testato su Windows 10, Debian 9 Stretch e Max OSX Mojave.

Ho avuto uno spasso prendendo CS50 Web e attualmente sto lavorando al mio progetto finale per CS50 Web.

Saluti,

Conor

Google Cloud Dynamic DNS Client

Questo è un semplice script DNS dinamico per Google Cloud DNS. Lo script controllerà il suo indirizzo IP pubblico e, in base alla sua configurazione letta dal file di configurazione, controllerà se Google Cloud DNS ha una voce DNS corrispondente. Se non viene trovata alcuna voce corrispondente, lo script ne creerà una. Se viene trovata una voce corrispondente, ma ha un indirizzo IP che non corrisponde a quello dello script trovato, lo script verrà aggiornato quindi Google Cloud entry (leggi elimina, quindi crea). Infine, se il file di configurazione degli script corrisponde a quello della voce DNS di Google Cloud, verrà sospeso per un intervallo di x e il processo si ripeterà.

Questo progetto è costituito dai seguenti componenti:

  • gcloud-ddns.py: lo script del client dns dinamico
  • ddns-conf.yaml: file di configurazione programmi
  • requisiti.txt: requisiti da installare

Requisiti

Questo script richiede Python 3.6 o superiore. f-stringhe sono ampiamente utilizzati. I requisiti del pacchetto sono elencati in requisiti.txt

Utilizzo

Usage: python gcloud-ddns.py 

Impostazione

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

Lo script verrà eseguito in primo piano. Ho intenzione di giocare con esso e testarlo per vedere se può funzionare in modo affidabile come servizio.

File di configurazione

La configurazione dello script viene letta da un file yaml. Ecco i contenuti dell’esempio ddns-conf.file 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

Lo script accetta un argomento CLI opzionale che è il percorso del file di configurazione. Se non viene specificato nessuno, lo script cercherà ddns-config.yaml nella stessa directory dello script.

  • host: il nome di dominio completo dell’host che si desidera impostare. NB * È necessario includere il . dopo l’ .com. Questo è un Google requisito/
  • project_id: il Tuo ID di un progetto all’interno di Google Cloud
  • managed_zone: Il nome del tuo gestito zona di Google Cloud
  • dominio: Il nome a dominio
  • ttl: Il numero di secondi per il TTL
  • intervallo: da Quanto tempo lo script viene sonno prima di eseguire di nuovo
  • api-key: Percorso per la chiave API in formato JSON
  • log-percorso: Percorso del file di log

Autenticazione

Per utilizzare l’API di Google Cloud, è necessaria una chiave API per il proprio account. Questa chiave sarà un file json e deve essere configurata nel file di configurazione.

Lo script imposterà GOOGLE_APPLICATION_CREDENTIALS variabile ambientale sul percorso della chiave API e i moduli di Google utilizzeranno questa variabile ambientale per gestire l’autenticazione.

os.environ = api_key

Docker

Un Dockerfile è incluso nel repository in modo da poterlo avviare come contenitore all’interno di un’istanza Docker.

docker build -t google-ddns .

Il comando docker predefinito prevede una configurazione.yaml file all’interno di /ddns directory

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

Tenete a mente che i percorsi all’interno del file di configurazione sono relativi al contenitore

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

Ecco un quick-and-dirty mobile-comporre file se si utilizza l’

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

ipify.org API

Questo progetto fa uso di snazzy ipify.org API per il recupero di clienti indirizzo IP pubblico.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Previous post Come pulire correttamente un macinacaffè e le sue bave
Next post I migliori microfoni per il cinema: la guida 2020