== EDITZONE == #!/bin/sh if [ -z $1 ] ; then echo "Usage : $0 " echo "Edits " echo "Example: $0 danskkabeltv.dk" exit 1 fi ZONE=$1 NAMEDHOME="/var/chroot/named/etc" NAMEDBDIR="${NAMEDHOME}/namedb" MASTERDIR="${NAMEDHOME}/namedb/master" ZONEFILE="${MASTERDIR}/db.${ZONE}" GIT=/usr/pkg/bin/git OLDPWD=${PWD} cd ${NAMEDBDIR} if [ ! -f ${ZONEFILE} ]; then echo "Zone ${ZONEFILE} does not exist." echo "If you need to create a new zone, use createZone instead." exit 1 fi DNSNOERR=1 while [ ${DNSNOERR} -gt 0 ] ; do ${EDITOR} ${ZONEFILE} /usr/sbin/named-checkzone -q ${ZONE} ${ZONEFILE} DNSNOERR=$? if [ $DNSNOERR -gt "0" ] ; then echo "Zonefile errors follow" /usr/sbin/named-checkzone ${ZONE} ${ZONEFILE} "Press space to enter editor and fix errors" read -p "Press [space] to Edit file" fi done echo "Reloading ${ZONE} - remembered to increase the serial?" rndc reload ${ZONE} echo "Comitting ${ZONE} to git repository" ${GIT} add ${ZONEFILE} ${GIT} commit -m "${USER} changed ${ZONE}" ${GIT} push -u origin master cd ${OLDPWD} == CreateZone == #!/bin/sh if [ -z $1 ] ; then echo "Usage : $0 " echo "creates " echo "Example: $0 test.info" exit 1 fi ZONE=$1 NAMEDHOME="/var/chroot/named/etc" NAMEDBDIR="${NAMEDHOME}/namedb" MASTERDIR="${NAMEDBDIR}/master" NAMEDSKEL="${NAMEDBDIR}/skel" ZONEFILE="${MASTERDIR}/db.${ZONE}" GIT=/usr/pkg/bin/git RNDC=/usr/sbin/rndc OLDPWD=${PWD} cd ${NAMEDBDIR} if [ -f ${ZONEFILE} ]; then echo "Zone ${ZONEFILE} exists." echo "If you need to edit an existing zone, use editZone instead." exit 1 fi DNSNOERR=1 ## Copy Skeleton to dbfile cp ${NAMEDSKEL}/db.skeleton ${ZONEFILE} ## Change #VARIABLES# SERIAL=`/bin/date +%Y%m%d00` DATE=`/bin/date +%Y%m%d` USER=`/usr/bin/whoami` sed -e "s/#DOMAIN#/${ZONE}/" ${ZONEFILE} > ${ZONEFILE}.tmp && mv ${ZONEFILE}.tmp ${ZONEFILE} sed -e "s/#SERIAL#/${SERIAL}/" ${ZONEFILE} > ${ZONEFILE}.tmp && mv ${ZONEFILE}.tmp ${ZONEFILE} sed -e "s/#CREATEDBY#/${USER}/" ${ZONEFILE} > ${ZONEFILE}.tmp && mv ${ZONEFILE}.tmp ${ZONEFILE} sed -e "s/#CREATEDATE#/${DATE}/" ${ZONEFILE} > ${ZONEFILE}.tmp && mv ${ZONEFILE}.tmp ${ZONEFILE} ## Add Zonefile to master echo "zone \"${ZONE}\" { type master; file \"master/db.${ZONE}\"; };" >> zones.master ${RNDC} reconfig ${ZONE} ${RNDC} reload ${ZONE} echo "Comitting ${ZONE} to git repository" ${GIT} add ${ZONEFILE} zones.master ${GIT} commit -m "${USER} added ${ZONE}" ${GIT} push -u origin master cd ${OLDPWD}