conorcunningham / google-ddns

N. B Este projeto requer o uso de Nuvem Google, e o Google Cloud requer autenticação. Especificamente, neste projeto, e ao usar o DNS do Google Cloud, é necessária uma chave API. É efetivamente livre de usar o Google DNS para testes, mas uma conta, no entanto, é necessária.

eu escrevi isso para resolver um problema que eu tinha em casa, e acabou me economizando $100 dólares por ano. Obrigado, Python! Obrigado CS50!

abri este projecto para todos.

além disso, trata-se deliberadamente de um pedido de um processo. Ele é projetado para ser fácil de clonar e usar, daí o código aberto, e é projetado para ser usado com um serviço Linux para que ele possa ser executado em segundo plano. Ele pode teoricamente ser executado em todas as plataformas, MAC, Windows, Linux, dispositivos embarcados linux e equipamentos de rede doméstica.

eu testei isso no Windows 10, Debian 9 Stretch e Max OSX Mojave.

I had a hoot taking CS50 Web and am currently working on my final project for CS50 Web.

Cheers,

Conor

Google Cloud Dynamic DNS Client

This is a simple dynamic DNS script for Google Cloud DNS. O script irá verificar para o seu endereço IP público, e, em seguida, com base em sua configuração que leu a partir do arquivo de configuração, verificar se o Google Cloud DNS tem uma entrada DNS correspondente. Se não for encontrado nenhum item correspondente, o script irá criar um. Se um item correspondente for encontrado, mas tiver um endereço IP que não corresponde ao que o script encontrou, então o script irá atualizar em seguida, o Google Cloud entry (leia apagar, em seguida, criar). Finalmente, se o arquivo de configuração de scripts corresponde ao do Google Cloud DNS entry, então ele vai dormir por um intervalo de x, e o processo se repete.

este projecto consiste nas seguintes componentes::

  • gcloud-ddns.py: the dynamic dns client script
  • ddns-conf.yaml: programs configuration file
  • requirements.txt: requisitos para serem instalados

requisitos

este programa requer Python 3.6 ou superior. as cordas f são extensivamente usadas. Os requisitos do pacote estão listados nos requisitos.txt

Uso

Usage: python gcloud-ddns.py 

Instalação

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

O script será executado em primeiro plano. Eu vou brincar com ele e testá-lo para ver se ele pode funcionar de forma confiável como um serviço.

ficheiro de configuração

a configuração do programa é lida a partir de um ficheiro yaml. Aqui estão os conteúdos do exemplo ddns-conf.ficheiro 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

o script aceita um argumento de CLI opcional que é o caminho para o arquivo de configuração. Se nenhum for dado, o script irá procurar por ddns-config.yaml no mesmo diretório que o script.

  • host: o nome de domínio totalmente qualificado da máquina que deseja definir. NB* você deve incluir o . após o .com. Este é um Google requisito/
  • project_id: Seu ID de projeto dentro do Google Cloud
  • managed_zone: O nome do seu gerenciado de zona no Google Cloud
  • domínio: O nome de domínio
  • ttl: O número de segundos para o TTL
  • intervalo: Quanto tempo o script vai dormir antes de executar novamente
  • api-chave: Caminho para a chave de API no formato JSON
  • log-caminho: Localização do ficheiro de Registo

autenticação

para utilizar a API do Google Cloud, irá precisar de uma chave de API para a sua conta. Esta chave será um ficheiro json e deverá ser configurada no ficheiro de configuração.

o programa irá definir GOOGLE_APPLICATION_CREDENTIALS variável ambiental para o caminho da sua chave de API e os módulos da Google irão usar esta variável ambiental para lidar com a autenticação.

os.environ = api_key

Docker

um ficheiro Dockerfile está incluído no repositório para que possa lançá-lo como um contentor dentro de uma instância Docker.

docker build -t google-ddns .

o comando ‘docker’ por omissão espera uma configuração.yaml arquivo dentro do /ddns diretório

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

tenha em mente que os caminhos dentro do arquivo de configuração são relativas ao recipiente

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

Aqui está uma rápida e suja janela de encaixe-compor arquivo se você usar o que

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

ipify.org API

Este projeto faz uso do snazzy ipify.org API para buscar os clientes do endereço IP público.

Deixe uma resposta

O seu endereço de email não será publicado.

Previous post Como Limpar Corretamente Um Moedor de Café E Suas Rebarbas
Next post Os melhores microfones para o cinema: o guia 2020