tdocs - gitzone - git-based zone management tool for static and dynamic domains HTML git clone https://git.parazyd.org/gitzone DIR Log DIR Files DIR Refs --- DIR commit b4133eaed9ed0d5abb2960c5bfd13586bc1a9108 DIR parent 7aaed3b79f51f5ad469c56564524dea053463c5b HTML Author: tg(x) <*@tg-x.net> Date: Sat, 5 Feb 2011 22:04:38 +0100 docs Diffstat: M README.org | 93 ++++++++++++++++--------------- 1 file changed, 49 insertions(+), 44 deletions(-) --- DIR diff --git a/README.org b/README.org t@@ -57,39 +57,6 @@ key management. * Usage -** Zone files - -There are a few keywords you can use in the zone files: - -- ;AUTO_INCREMENT after a serial number to automatically increment it during - a push. If the number is 8 digits and starts with 20 it's treated as a date. - e.g.: - : example.net. IN SOA ns1.example.net. hostmaster.example.net. ( - : 2011013101 ;AUTO_INCREMENT - : 1d 2h 4w 2d ) - -- $INCLUDE can be used to include other files from the repository, the file - names should be prefixed with the user name - -- ;INCLUDED_BY on the first line of a file indicates what other files include - this file. When this file is committed & pushed all the other files listed - after ;INCLUDED_BY are reloaded as well. - - E.g. if you have the following files in the repository then a change in - example-common would result in the reload of both example.net & example.org: - - - example.net: - : ... - : $INCLUDE username/example-common example.net. - - - example.org: - : ... - : $INCLUDE username/example-common example.org. - - - example-common: - : ;INCLUDED_BY example.net example.org - : ... - ** Git repository To make changes to the zones you need to clone the git repository, edit the t@@ -107,23 +74,26 @@ hooks on the server make commits to the repository during a push. ** SSH commands -The following SSH commands can be used: +The following SSH commands are provided by gitzone-shell: - =update-record <filename> <record>=: updates the IP address of the first matched - record in the given file to the SSH client's IP address + record in the given file to the SSH client's IP address. : % ssh ns.example.net update-record example.net somehost IN A -- =list-keys=: list added ssh keys - : % ssh ns.example.net list-keys +- SSH key management commands, to use these =touch + .ssh/authorized_keys_edit_enabled= in the users' home directories. + + - =list-keys=: list added ssh keys + : % ssh ns.example.net list-keys -- =add-key=: add a new ssh key - : % ssh ns.example.net add-key `cat id_rsa.pub` + - =add-key=: add a new ssh key + : % ssh ns.example.net add-key `cat id_rsa.pub` - or only allow one specific command: - : % ssh ns.example.net add-key 'command="update-record example.net somehost IN A"' `cat id_rsa.pub` + or only allow one specific command: + : % ssh ns.example.net add-key 'command="update-record example.net somehost IN A"' `cat id_rsa.pub` -- =del-key=: delete an ssh key from the config - : % ssh ns.example.net del-key user@somewhere + - =del-key=: delete an ssh key from the config + : % ssh ns.example.net del-key user@somewhere ** Dynamic DNS t@@ -137,4 +107,39 @@ update your IP is: Run this command whenever the IP changes or the interface comes up. -- *Debian*: On Debian-like systems you can use a post-up command in /etc/network/interfaces. +*** Debian + +On Debian-like systems you can use a post-up command in /etc/network/interfaces. + +** Zone files + +There are a few keywords you can use in the zone files: + +- ;AUTO_INCREMENT after a serial number to automatically increment it during + a push. If the number is 8 digits and starts with 20 it's treated as a date. + e.g.: + : example.net. IN SOA ns1.example.net. hostmaster.example.net. ( + : 2011013101 ;AUTO_INCREMENT + : 1d 2h 4w 2d ) + +- $INCLUDE can be used to include other files from the repository, the file + names should be prefixed with the user name + +- ;INCLUDED_BY on the first line of a file indicates what other files include + this file. When this file is committed & pushed all the other files listed + after ;INCLUDED_BY are reloaded as well. + + E.g. if you have the following files in the repository then a change in + example-common would result in the reload of both example.net & example.org: + + - example.net: + : ... + : $INCLUDE username/example-common example.net. + + - example.org: + : ... + : $INCLUDE username/example-common example.org. + + - example-common: + : ;INCLUDED_BY example.net example.org + : ...