conorcunningham / google-ddns

N. B Tento projekt vyžaduje použití Google Cloud, a Google Cloud vyžaduje ověření. Konkrétně v tomto projektu a při používání DNS služby Google Cloud vyžaduje klíč API. Je skutečně zdarma používat Google DNS pro testování, ale přesto je vyžadován účet.

napsal jsem to, abych vyřešil problém, který jsem měl doma, a nakonec mi to ušetřilo $ 100 USD ročně. Díky, Krajto! Děkuji CS50!

otevřel jsem zdroj tento projekt pro všechny k použití.

dále je to záměrně aplikace s jedním souborem. Je navržen tak, aby bylo snadné klonovat a používat, tedy open source, a je navržen pro použití se službou Linux, aby mohl běžet na pozadí. Teoreticky může být spuštěn na všech platformách, MAC, Windows, Linux, embedded linux zařízení a zařízení domácí sítě.

Testoval jsem to na Windows 10, Debian 9 Stretch a Max OSX Mojave.

měl jsem hoot s CS50 Web a v současné době pracuji na svém posledním projektu pro CS50 Web.

na Zdraví,

Conor

Google Cloud Dynamic DNS Client

To je jednoduché dynamické DNS skript pro Google Cloud DNS. Skript bude kontrolovat jeho veřejnou IP adresu, a poté na základě jeho konfigurace je čtení z konfiguračního souboru, zkontrolujte, zda Google Cloud DNS má odpovídající položku DNS. Pokud není nalezena žádná odpovídající položka, skript ji vytvoří. Pokud je nalezena odpovídající položka, ale má IP adresu, která neodpovídá tomu, co skript našel, skript se aktualizuje a poté položku Google Cloud (přečtěte si smazat a poté vytvořit). A konečně, pokud konfigurační soubor skriptů odpovídá souboru položky Google Cloud DNS, bude spát po dobu X a proces se opakuje.

Tento projekt se skládá z následujících komponent:

  • gcloud-ddns.py: dynamické dns klientského skriptu
  • ddns-conf.yaml: konfigurační soubor programů
  • požadavky.txt: požadavky na instalaci

požadavky

tento skript vyžaduje Python 3.6 nebo vyšší. F-řetězce jsou široce používány. Požadavky na balení jsou uvedeny v požadavcích.txt

použití

Usage: python gcloud-ddns.py 

nastavení

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

skript poběží v popředí. Budu si s tím hrát a vyzkoušet, jestli to může spolehlivě fungovat jako služba.

konfigurační soubor

konfigurace skriptu je načtena ze souboru yaml. Zde je obsah příkladu ddns-conf.yaml soubor

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

skript přijímá jeden volitelný argument CLI, kterým je cesta ke konfiguračnímu souboru. Pokud není zadáno žádné, bude skript hledat ddns-config.yaml ve stejném adresáři jako skript.

  • host: plně kvalifikovaný název domény hostitele, který chcete nastavit. NB* musíte zahrnout . po .kom. To je Google požadavek/
  • project_id: Vaše ID projektu v rámci Google Cloud
  • managed_zone: název vaší spravované zóny v Google Cloud
  • doména: název domény
  • ttl: počet sekund pro TTL
  • interval: Jak dlouho skript bude spát před spuštěním znovu
  • api-key: Cestu k klíč API ve formátu JSON
  • log-cesta: Cesta k logfile

autentizace

abyste mohli používat rozhraní Google Cloud API, budete potřebovat klíč API pro svůj účet. Tento klíč bude soubor json a musí být nakonfigurován v konfiguračním souboru.

skript nastaví GOOGLE_APPLICATION_CREDENTIALS proměnné prostředí pro cestu váš klíč API a Google moduly budou používat tuto proměnnou prostředí zvládnout ověřování.

os.environ = api_key

Docker

Dockerfile je součástí úložiště, takže můžete spustit to jako kontejner uvnitř Docker stupně.

docker build -t google-ddns .

výchozí příkaz docker očekává konfiguraci.yaml soubor dovnitř níže /ddns adresář

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

Mějte na paměti, že cesty uvnitř konfiguračního souboru jsou relativní ke kontejneru

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

Zde je rychlý a špinavý docker-compose soubor, pokud budete používat, že

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

ipify.org API

Tento projekt je používat snazzy ipify.org API pro načítání klienty veřejnou IP adresu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

Previous post Jak Správně Čistit Mlýnek Na Kávu A Její Otřepy
Next post Nejlepší mikrofony pro filmování: průvodce 2020