2014-04-26 18:24:54 -07:00

211 lines
5.4 KiB
Bash

#!/bin/bash
# set the hostname
function set_hostname {
echo setting hostname to $1
echo "HOSTNAME=$1" >> /etc/sysconfig/network
hostname "$1"
# update /etc/hosts
echo $(system_primary_ip) $(get_rdns_primary_ip) $(hostname) >> /etc/hosts
}
# set the timezone
function set_timezone {
echo setting the timezone to LA
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
}
# update from repos
function system_update {
yum -yq update
}
# returns the primary IP assigned to eth0
function system_primary_ip {
echo $(ifconfig eth0 | awk -F: '/inet addr:/ {print $2}' | awk '{ print $1 }')
}
# installs apache2 and set it to listen
function apache_install {
yum -yq install httpd
mkdir /etc/httpd/sites-available
mkdir /etc/httpd/sites-enabled
# sed -i -e 's/^#NameVirtualHost \*:80$/NameVirtualHost *:80/' /etc/httpd/conf/httpd.conf
echo "Include sites-enabled/*" >> /etc/httpd/conf/httpd.conf
echo "NameVirtualHost *:80" >> /etc/httpd/conf/httpd.conf
echo "NameVirtualHost *:443" >> /etc/httpd/conf/httpd.conf
echo "NameVirtualHost [::]:80" >> /etc/httpd/conf/httpd.conf
echo "NameVirtualHost [::]:443" >> /etc/httpd/conf/httpd.conf
touch /tmp/restart-httpd
}
# adds a virtual host to sites avail/enabled
function apache_virtualhost {
# Configures a VirtualHost
# $1 - required - the hostname of the virtualhost to create
if [ ! -n "$1" ]; then
echo "apache_virtualhost() requires the hostname as the first argument"
return 1;
fi
if [ -e "/etc/httpd/sites-available/${1}.conf" ]; then
echo /etc/httpd/sites-available/${1}.conf already exists
return;
fi
mkdir -p /home/$1/www /home/$1/logs
echo "<VirtualHost *:80>" > /etc/httpd/sites-available/${1}.conf
echo " ServerName $1" >> /etc/httpd/sites-available/${1}.conf
echo " DocumentRoot /home/$1/www/" >> /etc/httpd/sites-available/${1}.conf
echo " <Directory /home/$1/www/>" >> /etc/httpd/sites-available/${1}.conf
echo " AllowOverride All" >> /etc/httpd/sites-available/${1}.conf
echo " </Directory>" >> /etc/httpd/sites-available/${1}.conf
echo " ErrorLog /home/$1/logs/error.log" >> /etc/httpd/sites-available/${1}.conf
echo " CustomLog /home/$1/logs/access.log combined" >> /etc/httpd/sites-available/${1}.conf
echo "</VirtualHost>" >> /etc/httpd/sites-available/${1}.conf
ln -s /etc/httpd/sites-available/${1}.conf /etc/httpd/sites-enabled/${1}.conf
touch /tmp/restart-httpd
}
# install and configure mysql
function mysql_install {
# $1 - the mysql root password
if [ ! -n "$1" ]; then
echo "mysql_install() requires the root pass as its first argument"
return 1;
fi
yum -yq install mysql-server
service mysqld start
echo "Sleeping while MySQL starts up for the first time..."
sleep 20
# Remove anonymous users
echo "DELETE FROM mysql.user WHERE User='';" | mysql -u root
# Remove remote root
echo "DELETE FROM mysql.user WHERE User='root' AND Host!='localhost';" | mysql -u root
# Remove test db
echo "DROP DATABASE test;" | mysql -u root
# Set root password
echo "UPDATE mysql.user SET Password=PASSWORD('$1') WHERE User='root';" | mysql -u root
# Flush privs
echo "FLUSH PRIVILEGES;" | mysql -u root
touch /tmp/restart-mysqld
}
# create a mysql db
function mysql_create_database {
# $1 - the mysql root password
# $2 - the db name to create
if [ ! -n "$1" ]; then
echo "mysql_create_database() requires the root pass as its first argument"
return 1;
fi
if [ ! -n "$2" ]; then
echo "mysql_create_database() requires the name of the database as the second argument"
return 1;
fi
echo "CREATE DATABASE $2;" | mysql -u root -p"$1"
}
# add a mysql user
function mysql_create_user {
# $1 - the mysql root password
# $2 - the user to create
# $3 - their password
if [ ! -n "$1" ]; then
echo "mysql_create_user() requires the root pass as its first argument"
return 1;
fi
if [ ! -n "$2" ]; then
echo "mysql_create_user() requires username as the second argument"
return 1;
fi
if [ ! -n "$3" ]; then
echo "mysql_create_user() requires a password as the third argument"
return 1;
fi
echo "CREATE USER '$2'@'localhost' IDENTIFIED BY '$3';" | mysql -u root -p"$1"
}
# add a mysql users permissions
function mysql_grant_user {
# $1 - the mysql root password
# $2 - the user to bestow privileges
# $3 - the database
if [ ! -n "$1" ]; then
echo "mysql_create_user() requires the root pass as its first argument"
return 1;
fi
if [ ! -n "$2" ]; then
echo "mysql_create_user() requires username as the second argument"
return 1;
fi
if [ ! -n "$3" ]; then
echo "mysql_create_user() requires a database as the third argument"
return 1;
fi
echo "GRANT ALL PRIVILEGES ON $3.* TO '$2'@'localhost';" | mysql -u root -p"$1"
echo "FLUSH PRIVILEGES;" | mysql -u root -p"$1"
}
# install php from a 3rd party repo
function php_install {
# yum -y remove php-common
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum -y install php55w php55w-opcache php55w-xml php55w-mysql php55w-mbstring php55w-mcrypt php55w-pear
sed -i -e 's/^short_open_tag = Off$/short_open_tag = On/' /etc/php.ini
}
# restarts services that have a file in /tmp/needs-restart/
function restart_services {
for service in $(ls /tmp/restart-* | cut -d- -f2); do
service $service restart
rm -f /tmp/restart-$service
done
}
# installs my shit
function install_basics {
yum -yq install git wget
}
# changes sshs port
function ssh_port {
sed -i -e 's/^#Port 22$/Port $1/' /etc/ssh/sshd_config
}