Files
tuend-work 0b28a76e20 ud
2025-11-12 23:24:15 +07:00

308 lines
5.7 KiB
Bash

#!/bin/sh
#This script will aquire all information needed to do the install
#and will save it accordingly. You can stop the install at anytime
#and start over.
OS=`uname`
SETUP="./setup.txt"
cd /usr/local/directadmin/scripts
YES="y"
NO="n"
if [ -e ${SETUP} ]
then
while echo -n "Do you want to re-enter the server information? (y, n) :"
if [ "${OS}" = "FreeBSD" ]; then
read CORRECT
else
read -n 1 CORRECT
fi
echo "";
do
{
if [ $CORRECT = $YES ]
then
break;
fi
if [ $CORRECT = $NO ]
then
exit 0;
fi
}
done;
fi
rm -f ${SETUP}
umask 077;
#*****************************************
#STEP 1: gethostname
CORRECT="";
while
echo "Enter the hostname you wish to use.";
echo "This is the server's hostname and is *not* intended as a website for the server.";
echo "*YOU* are responsible for making sure it resolves to the proper ip.";
echo "Do not enter http:// or www.";
echo -n "(eg. server.host.com) : ";
read hostname;
echo "";
echo -n "Is ${hostname} correct? (y, n) : ";
if [ "${OS}" = "FreeBSD" ]; then
read CORRECT
else
read -n 1 CORRECT
fi
echo "";
do
{
if [ $CORRECT = $YES ]
then
break;
fi
}
done
echo "hostname=$hostname" >> ${SETUP}
#*****************************************
#STEP 2: get email
CORRECT="";
while echo -n "E-Mail Address: ";
read email;
echo "";
echo -n "Is ${email} correct? (y, n) : ";
if [ "${OS}" = "FreeBSD" ]; then
read CORRECT
else
read -n 1 CORRECT
fi
echo "";
do
{
if [ $CORRECT = $YES ]
then
break;
fi
}
done
echo "email=$email" >> ${SETUP}
#***********************************************
#STEP 2: get mysql root password
while echo -n "Enter a password for the root MySQL user (no spaces): "
if [ "${OS}" = "FreeBSD" ]; then
read passwd
else
read -s passwd
fi
echo ""
echo -n "Re-Type the password: "
if [ "${OS}" = "FreeBSD" ]; then
read repasswd
else
read -s repasswd
fi
do
{
if [ "$passwd" = "$repasswd" ]; then
#if [ -e /usr/bin/mysql ]
if [ -e /file/that/doesnt/exist ]; then
echo "";
echo "SELECT now();" | /usr/bin/mysql 2> /dev/null;
if [ $? != 0 ]; then
#root password IS set, make sure its right
echo "SELECT now();" | /usr/bin/mysql -uroot -p${passwd}
if [ $? = 0 ]; then
break;
fi
else
#the root password isn't set
break;
fi
else
break;
fi
else
echo "";
echo "Passwords do not match";
fi
}
done
echo "";
echo "mysql=$passwd" >> ${SETUP};
echo "mysqluser=da_admin" >> ${SETUP};
#****************************************************
#STEP 3: generate admin password
ADMINNAME="admin";
ADMINPASS=`perl -le'print map+(A..Z,a..z,0..9)[rand 62],0..7'`;
echo "adminname=admin" >> ${SETUP};
echo "adminpass=$ADMINPASS" >> ${SETUP};
#***************************************************
#STEP 4: set the nameserver
TEST=`echo $hostname | cut -d. -f3`
if [ "$TEST" = "" ]; then
NS1=ns1.`echo $hostname | cut -d. -f1,2`
NS2=ns2.`echo $hostname | cut -d. -f1,2`
else
NS1=ns1.`echo $hostname | cut -d. -f2,3,4,5,6`
NS2=ns2.`echo $hostname | cut -d. -f2,3,4,5,6`
fi
echo -e "ns1=$NS1\nns2=$NS2" >> ${SETUP};
#****************************************************
#STEP 5: get the ip
prefixToNetmask(){
BINARY_IP=""
for i in {1..32}; do {
if [ ${i} -le ${1} ]; then
BINARY_IP="${BINARY_IP}1"
else
BINARY_IP="${BINARY_IP}0"
fi
}
done
B1=`echo ${BINARY_IP} | cut -c1-8`
B2=`echo ${BINARY_IP} | cut -c9-16`
B3=`echo ${BINARY_IP} | cut -c17-24`
B4=`echo ${BINARY_IP} | cut -c25-32`
NM1=`perl -le "print ord(pack('B8', '${B1}'))"`
NM2=`perl -le "print ord(pack('B8', '${B2}'))"`
NM3=`perl -le "print ord(pack('B8', '${B3}'))"`
NM4=`perl -le "print ord(pack('B8', '${B4}'))"`
echo "${NM1}.${NM2}.${NM3}.${NM4}"
}
if [ "${OS}" = "FreeBSD" ]; then
IP=`grep -m1 '^ifconfig_' /etc/rc.conf | cut -d\ -f2`
else
IP=`ip addr show eth0 | grep -m1 'inet ' | awk '{print $2}' | cut -d/ -f1`
PREFIX=`ip addr show eth0 | grep -m1 'inet ' | awk '{print $2}' | cut -d/ -f2`
if echo "${IP}" | grep -m1 -q ':'; then
NM="${PREFIX}"
else
NM=`prefixToNetmask ${PREFIX}`
fi
fi
echo "ip=$IP" >> ${SETUP};
echo "netmask=$NM" >> ${SETUP};
#***************************************************
#STEP 5: user id and license id
userid=0;
liceid=0;
CORRECT="";
while echo -n "Enter Your Client ID: ";
read userid;
echo "";
echo -n "Enter Your License ID: ";
read liceid;
echo "";
echo -n "Is CID: ${userid} and LID: ${liceid} correct? (y, n): ";
read -n 1 CORRECT;
echo "";
do
{
if [ $CORRECT = $YES ]
then
break;
fi
}
done
echo -e "uid=${userid}\nlid=${liceid}" >> ${SETUP}
#**********************************************************
#STEP 6: figure out what os he's using so we can get the correct services file
CORRECT="";
SERVFILE="";
while echo "What Operating system are you running?";
if [ "${OS}" = "FreeBSD" ]; then
echo -e "\t1:FreeBSD 4.8";
read NUM
else
echo -e "\t1:RedHat 7.2";
echo -e "\t2:RedHat 7.3";
echo -e "\t3:RedHat 8.0";
echo -e "\t4:RedHat 9.0";
echo -n "Enter the number from the left: ";
read -n 1 NUM
fi
echo ""
do
{
case $NUM in
1 ) SERVFILE="services72.tar.gz";
;;
2 ) SERVFILE="services73.tar.gz";
;;
3 ) SERVFILE="services80.tar.gz";
;;
4 ) SERVFILE="services90.tar.gz";
;;
esac
if [ "$SERVFILE" = "" ]
then
continue;
else
break;
fi
}
done
echo "services=${SERVFILE}" >> ${SETUP}
echo "**********************************";
echo "All Information has been gathered. Please make *sure* the following data is correct, if not, edit the setup.txt file before going on";
echo "";
/bin/cat ${SETUP};
exit 0;