terom@556: Manage DNS/bind9 zonefiles. terom@556: terom@556: update: terom@556: ./bin/update reads data from settings/, and generates zonefiles under zones/. terom@556: terom@556: `update` also shows and commits changes in settings/ data. terom@556: terom@579: -d DIR terom@557: Do data operations under given dir-root, as opposed to CWD. terom@557: terom@557: -q terom@579: Quiet. No log messages except errors. terom@557: terom@557: -vDV terom@557: Increasing logging verbosity. terom@557: terom@557: -p terom@579: Show diffs for changed output on stdout. terom@557: terom@557: -F terom@557: Force-update output files, even if newer than input files. terom@557: terom@557: -S terom@557: Do not generate new serials for zones. terom@557: terom@579: -s terom@579: Generate new serials for all zones. terom@579: terom@557: -n terom@557: Fake-update; show changes, but don't actually commit/deploy them. terom@557: terom@579: Useful for testing. terom@579: terom@557: -C terom@557: Do not commit source changes. terom@557: terom@557: -c terom@557: Force-commit source changes, even though -n terom@557: terom@579: -m MSG terom@557: Commit message for source changes; optional terom@557: terom@556: bin/update-serial: terom@556: Increment DNS SOA record serials in the given .serial files. terom@556: terom@556: Uses a YYYYMMDDXX format, but supports XX overflow. terom@556: terom@556: bin/process-zone: terom@556: Read zonefile containing records, and generate any of: terom@556: terom@556: --check-hosts: terom@556: Check for duplicate host names/IPs. terom@556: terom@556: --forward-zone: terom@556: Generate additional TXT/MX records to supplement A/CNAME records. terom@556: terom@556: --reverse-zone=NET terom@556: Generate PTR records for all matching A records. terom@556: terom@556: --meta-zone: terom@556: Generate additional TXT records from zonefile metadata, read from: terom@556: terom@556: hg annotate -q --date | ./bin/process-zone --input-line-date ... terom@556: terom@556: bin/expand-zone: terom@556: Expand template vars in a zone textfile; does not parse records, just passes through lines. terom@556: terom@556: Used to substitute e.g. `--serial .../foo.serial` values into SOA '{serial}' fields. terom@556: terom@556: bin/update: terom@556: Runs update-serial/process-zone/expand-zone to keep various generated zones/views up-to-date with respect to terom@579: source files under settings/. terom@556: terom@556: Also supports hg diff/commit/annotate integration with settings. terom@556: terom@579: Acts as our configuration file, determining the data/zones layout below. terom@579: terom@556: settings/: terom@556: Input files, fed through update to generate files under zones/ terom@556: terom@556: *.serial: terom@556: Zone serial numbers for corresponding *.zone terom@556: terom@556: *.zone: terom@556: Zone header, passed through process-zone with `--serial *.serial` and any appropriate `--expand view=...`. terom@556: terom@556: May include a view-based $INCLUDE to include different zone data for different views. terom@556: terom@556: *.zone.*: terom@579: Include zonefiles, $INCLUDE'd from *.zone terom@556: terom@556: *.txt: terom@556: Hosts zone data, used to generate forwards/reverse -hosts zones terom@556: terom@556: zones/: terom@556: Output files, loaded by bind. terom@556: terom@579: common/* terom@579: Common zone files shared across views. terom@556: terom@579: hosts/*:$view terom@579: View-variant hosts zones generated from settings/*.txt terom@556: terom@579: hosts/* terom@579: Host zones generated from settings/*.txt, may be used in some views but not others. terom@556: terom@579: includes/*:$view terom@579: View-specific zone includes used from view/*. terom@556: terom@579: includes/*.* terom@579: Zone includes used from view/*. terom@579: terom@579: $view/* terom@579: Zone data for given zone/domain in given view terom@579: terom@579: $view/* -> ...: terom@579: Symlinked generic-zone data for some specific zone; either to common/* or $view/*. terom@579: