#!/bin/sh
if [ -z $1 ] ; then
echo "Usage : $0 <zone>"
echo "Edits <zone>"
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}
#!/bin/sh
if [ -z $1 ] ; then
echo "Usage : $0 <zone>"
echo "creates <zone>"
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}