conorcunningham/google-ddns

N.b Ce projet nécessite l’utilisation de Google Cloud, et Google Cloud nécessite une authentification. Plus précisément, dans ce projet, et lors de l’utilisation du DNS de Google Cloud, il faut une clé API. Il est effectivement libre d’utiliser Google DNS pour les tests, mais un compte est néanmoins requis.

J’ai écrit ceci pour résoudre un problème que j’avais à la maison, et cela m’a permis d’économiser 100 USD par an. Merci, Python ! Merci CS50!

J’ai ouvert la source de ce projet à tous.

De plus, il s’agit délibérément d’une application à un seul fichier. Il est conçu pour être facile à cloner et à utiliser, d’où l’open source, et il est conçu pour être utilisé avec un service Linux afin qu’il puisse fonctionner en arrière-plan. Il peut théoriquement être exécuté sur toutes les plates-formes, MAC, Windows, Linux, les appareils linux embarqués et les équipements de réseau domestique.

J’ai testé cela sur Windows 10, Debian 9 Stretch et Max OSX Mojave.

J’ai eu du mal à prendre CS50 Web et je travaille actuellement sur mon projet final pour CS50 Web.

Santé,

Conor

Client DNS dynamique Google Cloud

Il s’agit d’un script DNS dynamique simple pour Google Cloud DNS. Le script vérifie son adresse IP publique, puis, en fonction de sa configuration, il lit dans le fichier de configuration, vérifie si Google Cloud DNS possède une entrée DNS correspondante. Si aucune entrée correspondante n’est trouvée, le script en créera une. Si une entrée correspondante est trouvée, mais a une adresse IP qui ne correspond pas à celle trouvée par le script, le script se mettra à jour puis l’entrée Google Cloud (lire supprimer, puis créer). Enfin, si le fichier de configuration des scripts correspond à celui de l’entrée DNS Google Cloud, il dormira pendant un intervalle de x et le processus se répétera.

Ce projet comprend les éléments suivants:

  • gcloud-ddns.py : le script client dns dynamique
  • ddns-conf.yaml: fichier de configuration des programmes
  • exigences.txt: exigences à installer

Exigences

Ce script nécessite Python 3.6 ou supérieur. les cordes f sont largement utilisées. Les exigences relatives aux emballages sont énumérées dans exigences.txt

Utilisation

Usage: python gcloud-ddns.py 

Configuration

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

Le script s’exécutera au premier plan. Je vais jouer avec et le tester pour voir s’il peut fonctionner de manière fiable en tant que service.

Fichier de configuration

La configuration du script est lue à partir d’un fichier yaml. Voici le contenu de l’exemple ddns-conf.fichier 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

Le script accepte un argument CLI optionnel qui est le chemin d’accès au fichier de configuration. Si aucun n’est donné, le script recherchera ddns-config.yaml dans le même répertoire que le script.

  • host : nom de domaine complet de l’hôte que vous souhaitez définir. NB * Vous devez inclure le. après le .com. Ceci est une exigence de Google /
  • project_id: Votre ID de projet dans Google Cloud
  • managed_zone: Le nom de votre zone gérée dans Google Cloud
  • domain: Votre nom de domaine
  • ttl: Le nombre de secondes pour l’intervalle TTL
  • : Combien de temps le script va dormir avant de s’exécuter à nouveau
  • api-key : Chemin d’accès à la clé API au format JSON
  • log-path: Chemin d’accès au fichier journal

Authentification

Pour utiliser l’API Google Cloud, vous aurez besoin d’une clé API pour votre compte. Cette clé sera un fichier json et doit être configurée dans le fichier de configuration.

Le script définira la variable d’environnement GOOGLE_APPLICATION_CREDENTIALS sur le chemin de votre clé API et les modules de Google utiliseront cette variable d’environnement pour gérer l’authentification.

os.environ = api_key

Docker

Un fichier Dockerfile est inclus dans le référentiel afin que vous puissiez le lancer en tant que conteneur dans une instance Docker.

docker build -t google-ddns .

La commande docker par défaut attend une configuration.fichier yaml dans le répertoire /ddns

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

Gardez à l’esprit que les chemins à l’intérieur du fichier de configuration sont relatifs au conteneur

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

Voici un fichier docker-compose rapide et sale si vous l’utilisez

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

ipify.org API

Ce projet utilise le snazzy ipify.org API pour récupérer l’adresse IP publique des clients.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Previous post Comment Nettoyer Correctement Un Moulin À Café Et Ses Bavures
Next post Les meilleurs microphones pour la réalisation de films: Le guide 2020