Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

ddns_client, used with coredns/etcd

Project description

DDNS

采用以下开源项目作为核心实现:

获取公网IP接口(多个容错):

日志/指标方案支持以下:

部署方案支持以下:

其他参数支持:

  • pid

客户端采用技术:

实现方案考虑

  • coredns + /etc/hosts + python server/client
  • coredns + etcd + python client

实现方案

最终方案选择

降低对环境的耦合, 不对 /etc/hosts 进行操作(简单性能一般), 最终采用 coredns + etcd + python client方案。

部署方案考虑

支持以下方案(平台支持: linux/amd64+arm64):

  • 二进制/systemd
  • Docker/docker-compose/docker-swarm
  • k8s

周边生态考虑

支持以下项目:

  • 参数配置

  • 日志输出:

    • 标准输出/错误
    • 日志文件(根据信号支持重新打开): logging
    • fluentd输出: fluentd-python
  • 指标输出:

  • 信号处理:

    • 重启加载日志
    • stop/quit/reopen/reload

运行流程图

读取配置文件:

配置文件

运行:

运行

安装部署

# brotlipy(aiohttp[speedup]) requirements
apt install -y build-essential python3.6-dev libffi-dev

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ddns-client, version 0.8
Filename, size File type Python version Upload date Hashes
Filename, size ddns_client-0.8-py3-none-any.whl (20.7 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size ddns_client-0.8.tar.gz (7.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page