mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
get-zones should comment out NAMESERVER() (#743)
* get-zones should comment out NAMESERVER() * Edits
This commit is contained in:
@@ -9,12 +9,51 @@ DNSControl has a stand-alone utility that will contact a provider,
|
||||
download the records of one or more zones, and output them to a file
|
||||
in a variety of formats.
|
||||
|
||||
The original purpose of this command is to help convert legacy domains
|
||||
to DNScontrol (bootstrapping). Since bootstrapping can not depend on
|
||||
`dnsconfig.js`, `get-zones` relies on command line parameters and
|
||||
`creds.json` exclusively.
|
||||
`get-zones` relies on command line parameters and `creds.json`
|
||||
exclusively. It does not use `dnsconfig.js`. This is to assist
|
||||
bootstrapping a new system.
|
||||
|
||||
Syntax:
|
||||
## Use case 1: Bootstrapping a new system
|
||||
|
||||
If you are moving a DNS zone from a provider to DNSControl, this
|
||||
command will do most of the work for you by downloading the records
|
||||
and writing them out in `dnsconfig.js`-format. It is intended to be
|
||||
"a decent first draft", only requiring minimal editing.
|
||||
|
||||
Use `--format=djs` or `--format=js` (djs is recommended).
|
||||
|
||||
Minor editing is required. Not all record formats are supported.
|
||||
SOA records are commented out, since most providers do not support it.
|
||||
BIND supports it, but requires the data to be entered as meta data.
|
||||
|
||||
The `NAMESERVER()` command is generated commented out. This is usually
|
||||
not needed as DNSControl can get more accurate information via the
|
||||
API. Remove the comments only to override the DNS service provider.
|
||||
|
||||
## Use case 2: Generating BIND ZONE files
|
||||
|
||||
The `--format=zone` generates BIND-style Zonefiles. Pseudo records not
|
||||
supported by BIND are generated as comments.
|
||||
|
||||
This format is useful when moving zonedata between providers, since
|
||||
the format is relatively universal.
|
||||
|
||||
This format is also useful for generating backups of DNS zones. Unlike
|
||||
making a backup of the `dnsconfig.js`, this is the raw records, which
|
||||
may be useful.
|
||||
|
||||
## Use case 3: TAB separated values
|
||||
|
||||
The goal of `--format=tsv` is to provide a high-fidelity format that is easy
|
||||
enough to parse with `awk`.
|
||||
|
||||
## Use case 4: List zones
|
||||
|
||||
If a provider supports it, `--format=nameonly` lists the names of the
|
||||
zones at the provider.
|
||||
|
||||
|
||||
## Syntax
|
||||
|
||||
dnscontrol get-zones [command options] credkey provider zone [...]
|
||||
|
||||
@@ -44,7 +83,8 @@ The columns in --format=tsv are:
|
||||
|
||||
The --ttl flag only applies to zone/js/djs formats.
|
||||
|
||||
EXAMPLES:
|
||||
## Examples
|
||||
|
||||
dnscontrol get-zones myr53 ROUTE53 example.com
|
||||
dnscontrol get-zones gmain GANDI_V5 example.comn other.com
|
||||
dnscontrol get-zones cfmain CLOUDFLAREAPI all
|
||||
@@ -54,11 +94,10 @@ EXAMPLES:
|
||||
Read a zonefile, generate a JS file, then use the JS file to see how
|
||||
different it is from the zonefile:
|
||||
|
||||
dnscontrol get-zone --format=js -out=foo.djs bind BIND example.org
|
||||
dnscontrol get-zone --format=djs -out=foo.djs bind BIND example.org
|
||||
dnscontrol preview --config foo.js
|
||||
|
||||
|
||||
# Developer Note
|
||||
# Developer Notes
|
||||
|
||||
This command is not implemented for all providers.
|
||||
|
||||
@@ -88,12 +127,12 @@ and return them as a list of RecordConfig structs.
|
||||
|
||||
The code to do that already exists in `GetDomainCorrections`.
|
||||
You should extract it into its own function (`GetZoneRecords`), rather
|
||||
than having it be burried in the middle of `GetDomainCorrections`.
|
||||
than having it be buried in the middle of `GetDomainCorrections`.
|
||||
`GetDomainCorrections` should call `GetZoneRecords`.
|
||||
|
||||
Once that is done the `get-zone` subcommand should work.
|
||||
|
||||
**Step 4. Optionally implemement the `ListZones` function**
|
||||
**Step 4. Optionally implement the `ListZones` function**
|
||||
|
||||
If the `ListZones` function is implemented, the "all" special case
|
||||
will be activated. In this case, listing a single zone named `all`
|
||||
|
Reference in New Issue
Block a user