#!/bin/sh # script to create a zone file with default hosts, and add it to httpd.conf # please edit this to suit your needs DO NOT RUN IT LIKE THIS! # I know most of you think this script is a little much, but when you add # domains every day, it gets time consuming, this solves all of that # # sigterm # Rooted Networks Inc. # sigterm@rootednetworks.com # # # A few things you might want to change # put the name of your machine here MAIN_SERVER="web.rootednetworks.com" # Enter your nameservers here in order =) NS_PRIMARY="ns2.rootednetworks.com" NS_SECONDARY="ns3.rootednetworks.com" NS_THIRD="ns1.rootednetworks.com" # Enter your mail server MAIL_SERVER="mail.rootednetworks.com" BACKUP_MAIL_SERVER="nsx.rootednetworks.com" DOMAIN="$1" USER="$2" IP="$3" GROUP="$4" # Edit these accordingly to your specs of your system NAMEDDIR="/etc/namedb/db" HTTPCONF="/usr/local/etc/apache/httpd.conf" NDC="named.restart" APACHECTL="/usr/local/sbin/apachectl restart" RELOAD_SENDMAIL="killall -HUP sendmail" NAMEDCONF="/etc/namedb/named.conf" MAIL_RELAY="/etc/mail/relay-domains" MAIL_LOCAL_HOST="/etc/mail/local-host-names" MAIL_VIRTUSER="/etc/mail/virtusertable" # And now, lets get the shit on the move if [ "$1" = "" ]; then echo "Usage: `basename $0` Domain User Ip Group" exit fi if [ "$2" = "" ]; then echo "Usage: `basename $0` Domain User Ip Group" exit fi if [ "$3" = "" ]; then echo "Usage: `basename $0` Domain User Ip Group" exit fi if [ "$4" = "" ]; then echo "Usage `basename $0` Domain User Ip Group" exit fi #creating zone file for domain touch $NAMEDDIR/$DOMAIN echo "\$ttl 1800" >> $NAMEDDIR/$DOMAIN echo "$DOMAIN. IN SOA $NS_SECONDARY. root.$MAIN_SERVER. (" >> $NAMEDDIR/$DOMAIN echo " 977342637" >> $NAMEDDIR/$DOMAIN echo " 3600" >> $NAMEDDIR/$DOMAIN echo " 900" >> $NAMEDDIR/$DOMAIN echo " 604800" >> $NAMEDDIR/$DOMAIN echo " 1800 )" >> $NAMEDDIR/$DOMAIN echo " IN NS $NS_PRIMARY." >> $NAMEDDIR/$DOMAIN echo " IN NS $NS_SECONDARY." >> $NAMEDDIR/$DOMAIN echo " IN NS $NS_THIRD." >> $NAMEDIR/$DOMAIN echo " IN A $IP" >> $NAMEDDIR/$DOMAIN echo " IN MX 5 $MAIL_SERVER." >> $NAMEDDIR/$DOMAIN echo " IN MX 50 $BACKUP_MAIL_SERVER." >> $NAMEDIR/$DOMAIN echo "www IN A $IP" >> $NAMEDDIR/$DOMAIN echo "ftp IN A $IP" >> $NAMEDDIR/$DOMAIN echo "mail IN CNAME $MAIL_SERVER" >> $NAMEDIR/$DOMAIN #adding www.domain.com to httpd.conf echo "" >> $HTTPCONF echo " " >> $HTTPCONF echo " ServerAdmin $USER@$DOMAIN" >> $HTTPCONF echo " ServerName www.$DOMAIN" >> $HTTPCONF echo " ServerAlias $DOMAIN www.$DOMAIN" >> $HTTPCONF echo " DocumentRoot /usr/home/$USER/$DOMAIN/htdocs" >> $HTTPCONF echo " ErrorLog /usr/local/wwwlogs/$DOMAIN.error.log" >> $HTTPCONF echo " CustomLog /usr/local/wwwlogs/$DOMAIN.access.log combined" >> $HTTPCONF echo " Redirect /webmail http://www.rootednetworks.com/webmail" >> $HTTPCONF echo " Alias /cgi-bin /usr/home/$USER/$DOMAIN/cgi-bin" >> $HTTPCONF echo " " >> $HTTPCONF echo " Options Indexes FollowSymLinks MultiViews ExecCGI" >> $HTTPCONF echo " AddHandler cgi-script .pl .cgi" >> $HTTPCONF echo " " >> $HTTPCONF echo " " >> $HTTPCONF echo " Options Indexes FollowSymLinks Multiviews" >> $HTTPCONF echo " AllowOverride All" >> $HTTPCONF echo " order allow,deny" >> $HTTPCONF echo " allow from all" >> $HTTPCONF echo " " >> $HTTPCONF echo " " >> $HTTPCONF echo "" >> $HTTPCONF echo "" >> $HTTPCONF #adding domain to named.conf echo "zone \"$DOMAIN\" {" >> $NAMEDCONF echo " type master;" >> $NAMEDCONF echo " file \"db/$DOMAIN\";" >> $NAMEDCONF echo " allow-transfer {" >> $NAMEDCONF echo " 64.71.151.231;" >> $NAMEDCONF echo " 65.19.176.231;" >> $NAMEDCONF echo " 64.71.142.253;" >> $NAMEDCONF echo " };" >> $NAMEDCONF echo "};" >> $NAMEDCONF echo "" $NAMEDCONF # Add entries for the sendmail setup of the virt domain echo "$DOMAIN" >> $MAIL_RELAY echo "$DOMAIN" >> $MAIL_LOCAL_HOST echo "$USER@$DOMAIN $USER" >> $MAIL_VIRTUSER echo "@$DOMAIN error:nouser No such user here" >> $MAIL_VIRTUSER makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable # create htdocs and cgi-bin and logs in user directory mkdir /usr/home/$USER/$DOMAIN; chown $USER:$GROUP /usr/home/$USER/$DOMAIN mkdir /usr/home/$USER/$DOMAIN/htdocs && chmod 755 /usr/home/$USER/$DOMAIN/htdocs mkdir /usr/home/$USER/$DOMAIN/cgi-bin && chown $USER:$GROUP /usr/home/$USER/$DOMAIN/htdocs && chmod 755 /usr/home/$USER/$DOMAIN/cgi-bin cp /usr/local/www/data-dist/new_site.htm /usr/home/$USER/$DOMAIN/htdocs/index.htm chown -R $USER:$GROUP /usr/home/$USER/$DOMAIN/htdocs chown -R $USER:$GROUP /usr/home/$USER/$DOMAIN/cgi-bin echo "done setting up user directorys" echo "now test it out with a host lookup or www.$DOMAIN" sleep 2 echo "making webalizer configs for $USER" cp /etc/webconfs/template.conf /etc/webconfs/$DOMAIN.conf echo "LogFile /usr/local/wwwlogs/$DOMAIN.access.log" >> /etc/webconfs/$DOMAIN.conf echo "OutputDir /home/$USER/$DOMAIN/htdocs/webstats" >> /etc/webconfs/$DOMAIN.conf echo "HostName www.$DOMAIN" >> /etc/webconfs/$DOMAIN.conf mkdir /usr/home/$USER/$DOMAIN/htdocs/webstats echo "sleep 30" >> /etc/webcrons echo "/usr/local/bin/webalizer -c /etc/webconfs/$DOMAIN.conf" >> /etc/webcrons echo "Done setting up Webalizer for $DOMAIN" sleep 1 echo " " echo "*********************************" echo "DONT FORGET TO SETUP MRTG CONFIGS" echo "*********************************" echo " " echo "Add Sendmail configs to alternate mail hub" echo " " echo "Restart named/apache/sendmail? [yes or no]" read answer; if [ "$answer" = "yes" ]; then echo "restarting named, apache, sendmail" && $NDC && $APACHECTL && $RELOAD_SENDMAIL exit fi if [ "$answer" = "no" ]; then echo "Skipping restart" exit fi # Ok its all done folks, happy hosting... # -sigterm-