From b2de45b24bfc767b6bbf94954c28774b895c0a37 Mon Sep 17 00:00:00 2001 From: ducoterra Date: Mon, 8 Oct 2018 23:33:08 -0400 Subject: [PATCH] master no longer holds an installer --- install.sh | 305 --------------------------------------------------- reset.sh | 30 ----- uninstall.sh | 48 -------- vars | 27 ----- 4 files changed, 410 deletions(-) delete mode 100755 install.sh delete mode 100755 reset.sh delete mode 100755 uninstall.sh delete mode 100644 vars diff --git a/install.sh b/install.sh deleted file mode 100755 index 528c086..0000000 --- a/install.sh +++ /dev/null @@ -1,305 +0,0 @@ -################################################################################s -# Dependencies -# Installs Dependencies automatically -################################################################################ - -# source vars -source ./vars - -# check if root -if [[ $EUID -ne 0 ]]; then - echo -e "This script must be run as root" - exit 1 -fi -cd /root/ - -tput setaf 2 -echo -e "Installing dependencies" -tput setaf 9 -# create necessary dirs -if [ ! -d $logdir ] ; then - mkdir $logdir -fi - -if [ $install_epel_release=True ] ; then - yum -y install epel-release 1>> $yumlogloc 2>> $yumlogloc 3>> $yumlogloc -fi - -# install dependencies -packages=(gcc wget nginx libsqlite3x-devel.x86_64 postgresql-server postgresql-devel postgresql-contrib bzip2-devel zlib-devel libffi-devel openssl-devel policycoreutils-python.x86_64) -for package in ${packages[@]}; -do - echo -e "\tInstalling $package" - yum -y install $package 1>> $yumlogloc 2>> $yumlogloc 3>> $yumlogloc - if [ $? -ne 0 ] ; then - echo -e "yum failed to install $package. $yumlogmsg" - exit 1 - fi -done - -# firewall -ports=(80 443) -for port in ${ports[@]}; -do - echo -e "firewall-cmd --zone=public --add-port=$port/tcp --permanent" > $firelogloc - firewall-cmd --zone=public --add-port=$port/tcp --permanent 1>> $firelogloc 2>> $firelogloc - if [ $? -ne 0 ] ; then - echo -e "\tfirewall failed to update port $port correctly (this may not be an issue). $firelogmsg" - fi -done - -echo -e "firewall-cmd --reload" >> $firelogloc -firewall-cmd --reload 1>> $firelogloc 2>> $firelogloc -if [ $? -ne 0 ] ; then - echo -e "\tfirewall failed to reload, (this may not be an issue). $firelogmsg" -fi - -echo -e "semanage permissive -a httpd_t" >> $firelogloc -semanage permissive -a httpd_t >> $firelogloc -if [ $? -ne 0 ] ; then - echo -e "semanage failed to set permissive. See $firelogmsg" - exit 1 -fi - -################################################################################ -# Python -# Download and setup Python and modules -################################################################################ -tput setaf 2 -echo -e "Installing Python" -tput setaf 9 - -# fetch Python -if [ ! -d $pyinstalldir ] ; then # if we already installed python - wget $pylink 1> $pylogloc 2>> $pylogloc 3>> $pylogloc - if [ $? -ne 0 ] ; then - echo -e "Failed to fetch python, make sure wget is installed and $pylink is what you're after. $pylogmsg" - exit 1 - fi - tar xf Python-3.7.0.tar.xz 1>> $pylogloc 2>> $pylogloc 3>> $pylogloc - if [ $? -ne 0 ] ; then - echo -e "Failed to unzip python. $pylogmsg" - exit 1 - fi - cd Python-3.7.0 - if [ $? -ne 0 ] ; then - echo -e "Missing python directory. $pylogmsg" - exit 1 - fi - - # install Python - echo -e "\tConfigure" - ./configure --prefix $pyinstalldir 1>> $pylogloc 2>> $pylogloc 3>> $pylogloc - if [ $? -ne 0 ] ; then - echo -e "./configure failed. $pylogmsg" - exit 1 - fi - echo -e "\tMake" - make 1>> $pylogloc 2>> $pylogloc 3>> $pylogloc - if [ $? -ne 0 ] ; then - echo -e "make failed. $pylogmsg" - exit 1 - fi - echo -e "\tMake altinstall" - make altinstall 1>> $pylogloc 2>> $pylogloc 3>> $pylogloc - if [ $? -ne 0 ] ; then - echo -e "make altinstall failed. $pylogmsg" - exit 1 - fi -fi -# upgrade pip and install virtualenv -echo -e "\tUpgrading pip" -/usr/src/python37/bin/python3.7 -m pip install --upgrade pip 1>> $pylogloc 2>> $pylogloc 3>> $pylogloc -if [ $? -ne 0 ] ; then - echo -e "pip upgrade failed. $pylogmsg" - exit 1 -fi -echo -e "\tInstalling virtualenv" -/usr/src/python37/bin/python3.7 -m pip install virtualenv 1>> $pylogloc 2>> $pylogloc 3>> $pylogloc -if [ $? -ne 0 ] ; then - echo -e "installing virtualenv failed. $pylogmsg" - exit 1 -fi -cd /root/ -rm Python-3.7.0.tar.xz 1>> $pylogloc 2>> $pylogloc -rm -rf Python-3.7.0 1>> $pylogloc 2>> $pylogloc -if [ $? -ne 0 ] ; then - echo -e "Failed to remove Python install files. $pylogmsg" -fi - -################################################################################ -# Django -# Download, setup and configure Django -################################################################################ -tput setaf 2 -echo -e "Starting Django project" -tput setaf 9 - -adduser $user 1> /dev/null 2> /dev/null 3> /dev/null -if [ ! -d "/home/$user" ] ; then - mkdir /home/$user - chown -R $user:$user /home/$user -fi -mkdir /home/$user/$projectname -if [ $? -ne 0 ] ; then - echo -e "Failed to create $projectname directory. $djamsg" - exit 1 -fi - -# virtual environment -echo -e "\tCreating venv" -cd /home/$user/$projectname -/usr/src/python37/bin/python3.7 -m virtualenv venv 1>> $djalogloc 2>> $djalogloc 3>> $djalogloc -if [ $? -ne 0 ] ; then - echo -e "Failed to create virtual environment. $djamsg" - exit 1 -fi -source venv/bin/activate 1>> $djalogloc 2>> $djalogloc 3>> $djalogloc -if [ $? -ne 0 ] ; then - echo -e "Failed to source virtual environment. $djamsg" - exit 1 -fi - -# pip installs -pips=(django gunicorn psycopg2-binary) -for pip in ${pips[@]}; -do - echo -e "\tInstalling $pip" - pip install $pip 1>> $djalogloc 2>> $djalogloc 3>> $djalogloc - if [ $? -ne 0 ] ; then - echo -e "Failed to install $pip. $djamsg" - exit 1 - fi -done - -if [ $usegit = False ] ; then - # start django project in the project directory - echo -e "\tStarting django project" - django-admin startproject config . 1>> $djalogloc 2>> $djalogloc 3>> $djalogloc - if [ $? -ne 0 ] ; then - echo -e "Failed to start project $projectname with django-admin. $djamsg" - exit 1 - fi - - # update allowed hosts - echo -e "echo -e sed -i 's/ALLOWED_HOSTS = []/ALLOWED_HOSTS = ['localhost', os.environ.get('HOST')'] config/settings.py" >> $djalogloc - # | FROM | TO | - sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['localhost', os.environ.get('HOST')\]/" config/settings.py - if [ $? -ne 0 ] ; then - echo -e "Failed to change ALLOWED_HOSTS. $djamsg" - exit 1 - fi - echo -e "echo -e STATIC_ROOT = os.path.join(BASE_DIR, 'static') >> config//settings.py" >> $djalogloc - echo -e "STATIC_ROOT = os.path.join(BASE_DIR, 'static')" >> config/settings.py - if [ $? -ne 0 ] ; then - echo -e "Failed to append STATIC_ROOT. $djamsg" - exit 1 - fi -fi - -if [ $usegit = True ] ; then - echo -e "\tCloning django project" - ssh-agent bash -c 'ssh-add $gitkey 1>> $gitlogloc 2>> $gitlogloc 3>> $gitlogloc; - git init 1>> $gitlogloc 2>> $gitlogloc 3>> $gitlogloc; - git remote add origin $giturl 1>> $gitlogloc 2>> $gitlogloc 3>> $gitlogloc; - git pull origin master 1>> $gitlogloc 2>> $gitlogloc 3>> $gitlogloc;' - echo -e "\tInstalling pip requirements" - pip install -r requirements.txt 1>> $gitlogloc 2>> $gitlogloc 3>> $gitlogloc -fi - -# collect static, migrate -echo -e "\tCollecting static" -python manage.py collectstatic 1>> $djalogloc 2>> $djalogloc 3>> $djalogloc -if [ $? -ne 0 ] ; then - echo -e "Failed to collect static files. $djamsg" - exit 1 -fi -echo -e "\tMaking migrations" -python manage.py makemigrations 1>> $djalogloc 2>> $djalogloc 3>> $djalogloc -if [ $? -ne 0 ] ; then - echo -e "Failed to make migrations. $djamsg" - exit 1 -fi -echo -e "\tMigrating" -python manage.py migrate 1>> $djalogloc 2>> $djalogloc 3>> $djalogloc -if [ $? -ne 0 ] ; then - echo -e "Failed to migrate. You do not survive the winter. $djamsg" - exit 1 -fi -deactivate -if [ $? -ne 0 ] ; then - echo -e "Failed to deactivate virtual environment, (this may not be an issue). $djamsg" -fi -chown -R $user:$user . -if [ $? -ne 0 ] ; then - echo -e "Failed to change permissions of $projectname. $djamsg" - exit 1 -fi - -################################################################################ -# Gunicorn -# configure gunicorn.conf file -################################################################################ -tput setaf 2 -echo -e "Setting up gunicorn" -tput setaf 9 -echo -e " -[Unit] -Description=gunicorn daemon -After=network.target - -[Service] -User=$user -Group=nginx -WorkingDirectory=/home/$user/$projectname -ExecStart=/home/$user/$projectname/venv/bin/gunicorn --workers 3 --bind unix:/home/$user/$projectname/$projectname.sock config.wsgi:application -Environment=HOST=$hostname - -[Install] -WantedBy=multi-user.target" > /etc/systemd/system/gunicorn.service -echo -e "\tStarting gunicorn" -systemctl daemon-reload > $gunicornlogloc -systemctl start gunicorn >> $gunicornlogloc -systemctl status gunicorn >> $gunicornlogloc -echo -e "\tEnabling gunicorn at startup" -systemctl enable gunicorn 1>> $gunicornlogloc 2>> $gunicornlogloc - -################################################################################ -# Nginx -# configure nginx -################################################################################ -tput setaf 2 -echo -e "Configuring Nginx" -tput setaf 9 -echo -e " -server { - listen 80; - server_name $hostname; - - location = /favicon.ico { access_log off; log_not_found off; } - location /static/ { - root /home/$user/$projectname; - } - - location / { - proxy_set_header Host \$http_host; - proxy_set_header X-Real-IP \$remote_addr; - proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto \$scheme; - proxy_pass http://unix:/home/$user/$projectname/$projectname.sock; - } -}" > /etc/nginx/conf.d/$projectname.conf -# set the nginx user -if [ ! $user = "nginx" ] ; then - sed -i "s/user nginx/user $user nginx/" /etc/nginx/nginx.conf -fi -echo -e "\tStarting nginx" -systemctl restart nginx >> $nginxlogloc -systemctl status nginx >> $nginxlogloc -echo -e "\tEnabling nginx" -systemctl enable nginx 1>> $nginxlogloc 2>> $nginxlogloc - -tput setaf 2 -echo -e "Done! Navigate to $hostname to access the site. Logs can be found in $logdir" -tput setaf 9 -exit 0 \ No newline at end of file diff --git a/reset.sh b/reset.sh deleted file mode 100755 index fa57a40..0000000 --- a/reset.sh +++ /dev/null @@ -1,30 +0,0 @@ -################################################################################ -# Performs a QUICK uninstall # -# - Does not uninstall dependencies # -# - Does not remove python # -################################################################################ - -# source vars -source ./vars - -# remove nginx conf -tput setaf 2 -echo "Disabling nginx" -tput setaf 9 -systemctl stop nginx 1> /dev/null 2> /dev/null -systemctl disable nginx 1> /dev/null 2> /dev/null -rm -f /etc/nginx/conf.d/$projectname.conf - -# remove gunicorn -tput setaf 2 -echo "Uninstalling gunicorn" -tput setaf 9 -systemctl disable gunicorn 1> /dev/null 2> /dev/null -systemctl stop gunicorn 1> /dev/null 2> /dev/null -rm -f /etc/systemd/system/gunicorn.service - -# remove project -tput setaf 2 -echo "Removing Django project" -tput setaf 9 -rm -rf /home/$user/$projectname \ No newline at end of file diff --git a/uninstall.sh b/uninstall.sh deleted file mode 100755 index 6d94c6e..0000000 --- a/uninstall.sh +++ /dev/null @@ -1,48 +0,0 @@ -################################################################################ -# Performs a FULL uninstall # -################################################################################ - -# source vars -source ./vars - -# remove nginx conf -tput setaf 2 -echo "Disabling nginx" -tput setaf 9 -systemctl stop nginx 1> /dev/null 2> /dev/null -systemctl disable nginx 1> /dev/null 2> /dev/null -rm -f /etc/nginx/conf.d/$projectname.conf - -# remove gunicorn -tput setaf 2 -echo "Uninstalling gunicorn" -tput setaf 9 -systemctl disable gunicorn 1> /dev/null 2> /dev/null -systemctl stop gunicorn 1> /dev/null 2> /dev/null -rm -f /etc/systemd/system/gunicorn.service - -# remove project -tput setaf 2 -echo "Removing Django project" -tput setaf 9 -rm -rf /home/$user/$projectname - -# remove python -tput setaf 2 -echo "Uninstalling python" -tput setaf 9 -rm -rf $pyinstalldir - -# remove yum dependencies -tput setaf 2 -echo "Uninstalling dependencies" -tput setaf 9 -packages=(gcc wget nginx libsqlite3x-devel.x86_64 postgresql-server postgresql-devel postgresql-contrib bzip2-devel zlib-devel libffi-devel openssl-devel policycoreutils-python.x86_64) -for package in ${packages[@]}; -do - echo -e "\tRemoving $package" - yum -y erase $package 1>> /dev/null 2>> /dev/null 3>> /dev/null - if [ $? -ne 0 ] ; then - echo -e "\tyum failed to remove $package." - fi -done \ No newline at end of file diff --git a/vars b/vars deleted file mode 100644 index 46a4a0b..0000000 --- a/vars +++ /dev/null @@ -1,27 +0,0 @@ -# django project settings -export user="" -export projectname="" -export hostname="" -export usegit=False # if you have a django git project -export giturl="" # url for git project -export gitkey="" # IdentityFile -install_epel_release=False - -# general install settings -export logdir="/var/log/djangosetup/" -export yumlogloc=$logdir"yum.log" -export yumlogmsg="See $yumlogloc for more info." -export firelogloc=$logdir"firewall.log" -export firelogmsg="See $firelogloc for more info." -export pylogloc=$logdir"python.log" -export pylogmsg="See $pylogloc for more info." -export djalogloc=$logdir"django.log" -export djamsg="See $djalogloc for more info." -export gunicornlogloc=$logdir"gunicorn.log" -export nginxlogloc=$logdir"nginx.log" -export gitlogloc=$logdir"git.log" -export gitlogmsg="See $gitlogloc for more info." - -# python settings -export pylink="https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz" -export pyinstalldir="/usr/src/python37" \ No newline at end of file