宣言的な設定ファイルからクラウドやサービスのリソースを作成・変更・管理するIaC向けCLI。
DNSControl/dnscontrol
DNSのInfrastructure as Code。JavaScriptベースの設定でDNSレコードを定義し、複数のプロバイダーに反映できます。
- スター
- 3,979
- フォーク
- 550
- 未解決の Issue
- 32
- 最終コミット
- 昨日
これは何?
DNSControlはDNSレコードをコードとして管理します。JavaScript互換の設定ファイルでゾーンとレコードを記述すると、DNSControlがその望ましい状態と各プロバイダーの現在の状態を比較し、差分をプレビューしてからプロバイダーのAPI経由で適用します。
Amazon Route 53、Cloudflare、Gandi、Google Cloud DNSのほか、ISC BINDやPowerDNSなどのセルフホスト型を含む、約77のDNSプロバイダーとレジストラ向けプラグインを備えています。1つの設定から複数のプロバイダーに同じレコードを反映できるため、プロバイダーの切り替えや新しいプロバイダーのテストをより低リスクで行えます。Linux、macOS、Windowsで動作し、新しいプロバイダーをプラグインとして追加できる設計です。
Goで開発されており、通常はコマンドライン、Dockerコンテナ、またはGitHub Actionから実行します。DNSの変更をプルリクエストでレビューし、CIで反映できます。
主な機能
- 01JavaScript互換の設定ファイルでDNSゾーンとレコードを記述できます。
- 02変更を適用する前に、稼働中のプロバイダーとの差分をプレビューできます。
- 031つの設定から複数のDNSプロバイダーに同じレコードを同期できます。
- 04プラグインを通じて約77のDNSプロバイダーとレジストラに対応しています。
- 05変数とマクロを使って、IPアドレス、SPF、MXの設定を複数のドメインで再利用できます。
- 06Linux、macOS、Windowsで動作し、Dockerイメージも利用できます。
ユースケース
- Gitとプルリクエストでのレビューを通じて、多数のドメインのDNSレコードを管理する。
- テスト中に両方のプロバイダーを同期したまま、DNSゾーンを別のプロバイダーへ移行する。
- 公式GitHub Actionを使って、CI/CDパイプラインでDNS変更を自動化する。
- セルフホスト型のBINDサーバーやPowerDNSサーバーのDNSレコードをバージョン管理する。
クイックスタート
- 1
公式の手順に従って、パッケージまたはソースからDNSControlをインストールします
- 2
対話式セットアップウィザードを実行して、creds.jsonとdnsconfig.jsを作成します
dnscontrol init - 3
または、Dockerコンテナを使ってインストールせずに実行します
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
使う前に知っておきたいこと
- v5.0以降、REV()はRFC2317からRFC4183に切り替わります。これは互換性を破る変更です。
- NAMEDOTCOM、OPENSRS、SOFTLAYERの各プロバイダーには、現在メンテナーがいません。
トピック
よくある質問
- dnscontrol とは?
- DNSのInfrastructure as Code。JavaScriptベースの設定でDNSレコードを定義し、複数のプロバイダーに反映できます。 DNSControlはDNSレコードをコードとして管理します。JavaScript互換の設定ファイルでゾーンとレコードを記述すると、DNSControlがその望ましい状態と各プロバイダーの現在の状態を比較し、差分をプレビューしてからプロバイダーのAPI経由で適用します。
- dnscontrol は無料で使えますか?ライセンスは?
- dnscontrol は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- dnscontrol は今もメンテナンスされていますか?
- 活発にメンテナンス中。dnscontrol の最終コミットは 2026年10月21日 です。
- dnscontrol は何に使えますか?
- Gitとプルリクエストでのレビューを通じて、多数のドメインのDNSレコードを管理する。 テスト中に両方のプロバイダーを同期したまま、DNSゾーンを別のプロバイダーへ移行する。 公式GitHub Actionを使って、CI/CDパイプラインでDNS変更を自動化する。 セルフホスト型のBINDサーバーやPowerDNSサーバーのDNSレコードをバージョン管理する。
- dnscontrol のインストール方法は?
- 公式の手順に従って、パッケージまたはソースからDNSControlをインストールします 対話式セットアップウィザードを実行して、creds.jsonとdnsconfig.jsを作成します: dnscontrol init または、Dockerコンテナを使ってインストールせずに実行します: docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
- dnscontrol はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/DNSControl/dnscontrol
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Mesheryは、複数のクラスターやクラウドにまたがるKubernetesインフラとアプリケーションを設計、デプロイ、運用するためのオープンソースのクラウドネイティブマネージャーです。
VPSや専用サーバーでWebアプリのデプロイ、データベース、Dockerコンテナ、DNS、バックアップ、セキュリティを管理できるセルフホスト型サーバーコントロールパネル。
Gitリポジトリで定義された状態にKubernetesアプリケーションを同期する、宣言型のGitOps継続的デリバリーツールです。
Gitリポジトリにフラグを保存し、コードとともにデプロイできるGitネイティブなフィーチャーフラグプラットフォーム。
既存のCIパイプライン内でTerraformやOpenTofuを実行し、プルリクエストのコメントからplanとapplyを実行できる、オープンソースのIaCオーケストレーションツールです。