#!/bin/bash keyspath="/srv/privatekeys/dnssec" # region_zones are the special country-region-specific fedoraproject.org domains with our proxy layout region_zones="fedoraproject.org cloud.fedoraproject.org getfedora.org" # templated zones are jst templated zones template_zones="fedorahosted.org" # signed zones are the zones we sign for dnssec signed_zones="168.192.in-addr.arpa phx2.fedoraproject.org 389tcp.org fedoracommunity.org fedorahosted.org fedoralinux.com fedoralinux.net fedoralinux.org fedorapeople.org fedoraproject.com fedoraproject.net fedoraproject.org.uk fedora.us k12linux.org nspluginwrapper.org port389.org projectofedora.org smolts.org vpn.fedoraproject.org fedora.pt fedora.com.my fedora.my fedoraproject.com.my fedoraproject.su fedoraproject.co.uk fedoramagazine.org _openpgpkey.fedoraproject.org" AREA="PHX2 QA NA EU DEFAULT" checkzone() { # domain_name zonefile output=`named-checkzone -q $1 $2 2>&1` if [ $? != 0 ]; then echo "$2 file has errors - aborting!" echo $output echo "run 'git reset --hard' to revert all changes and start over" exit 1 fi return 0 } signzone() { #zonefile to be signed pushd built >>/dev/null zonefile=`echo $2 | sed -e "s/built\///g"` echo "dnssec-signzone -K $keyspath -o $1 $zonefile" dnssec-signzone -K $keyspath -o $1 $zonefile if [ $? != 0 ]; then echo "$1 could not be signed - aborting!" echo "run 'git reset --hard' to revert all changes and start over" popd >>/dev/null exit 1 fi popd >>/dev/null return 0 } echo "checking our normal zones" # check everything for zonefile in master/*; do if [ "${zonefile:(-1)}" != '~' ]; then zone=`basename $zonefile` checkzone ${zone} ${zonefile} /bin/cp ${zonefile} built/${zone} fi done echo "building and checking the template zones" for zone in $template_zones; do echo $zone ./zone-template ${zone}.cfg checkzone ${zone} built/${zone} done echo "building and checking the region, template zones" for zone in $region_zones; do echo -n "$zone " ./zone-template ${zone}.cfg for a in $AREA; do echo -n "$AREA " checkzone ${zone} built/$a/${zone} signzone ${zone} built/$a/${zone} done echo -e "\n" done # sign the other sign zones for zone in $signed_zones; do signzone ${zone} built/${zone} done # commit it all echo "All commands executed correctly. Now you can run:" echo "git add ." echo "git commit -a -m 'A summary of what you changed here'" echo "git push"