Advertisement
Guest User

addclient.sh

a guest
Sep 14th, 2017
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.96 KB | None | 0 0
  1. #!/bin/bash
  2. set -e
  3.  
  4. DEFAULT="\033[39m"
  5. GREEN="\033[32m"
  6. RED="\033[31m"
  7. LIGHT_BLUE="\033[94m"
  8.  
  9. if [[ `whoami` != "root" ]]; then
  10.     printf "$RED%s$DEFAULT\n" "$0 must be run with root privileges"
  11.     exit 1;
  12. fi
  13.  
  14. logger -s -t [INFO] -p user.info "configuration"
  15.  
  16. while [ -z ${project_name} ]; do
  17.         read -p "project name : " project_name
  18. done
  19. while [ -z ${project_type} ] ; do
  20.         read -p "project type [php/wordpress/java/Drupal] : " project_type
  21. done
  22. read -p "database name [] : " database_name
  23. if [ ! -z ${database_name} ] ; then
  24.  
  25.     while [ -z ${database_host} ] || [[ ! ${database_host} =~ ^(yes|oui|non|no|y|n|o|Y|N|O)$ ]]  ; do
  26.         read -p "database in dev [y/n] : " database_host
  27.     done
  28.     clone_db=false
  29.     if [[ ${database_host} =~ ^(yes|oui|y|o|Y|O)$ ]]; then
  30.         clone_db=true
  31.     fi
  32.     read -p "database user : " database_user
  33.     read -s -p "database password : " database_passwd
  34.     read -p "database prefix : " database_prefix
  35. fi
  36. read -p "nom de domaine : " ndd
  37. if [ -z ${database_host} ] ; then
  38.         database_host="dev"
  39. fi
  40.  
  41. logger -s -t [INFO] -p user.info "add user client_${project_name}"
  42. adduser --home "/webapps/client/${project_name}" --disabled-password --ingroup webapps ${project_name} || logger -s -t [ERROR] -p user.error "add user ${project_name}"
  43.  
  44. logger -s -t [INFO] -p user.info "clone https://git.bluteams.fr/client/${project_type}/${project_name}"
  45. git clone "https://git.bluteams.fr/client/${project_type}/${project_name}" "/webapps/client/${project_name}/${project_name}" || logger -s -t [ERROR] -p user.error "failed clone https://git.bluteams.fr/client/${project_type}/${project_name} on /webapps/client/${project_name}/${project_name}"
  46.  
  47. logger -s -t [INFO] -p user.info "create log folder /webapps/logs/${project_name}"
  48. mkdir -p  "/webapps/logs/${project_name}" || logger -s -t [ERROR] -p user.error "failed create folder /webapps/logs/${project_name}"
  49.  
  50. chown -R ${project_name}:webapps "/webapps/client/${project_name}/${project_name}"
  51.  
  52. logger -s -t [INFO] -p user.info "create apache virtualhost"
  53. echo "<VirtualHost 91.121.169.86:80>
  54.        ServerAdmin server@bluteamsgroup.fr
  55.        ServerName ${ndd}
  56.        ServerAlias www.${ndd}
  57.  
  58.        DocumentRoot /webapps/client/${project_name}/${project_name}
  59.  
  60.        <ifmodule mpm_itk_module>
  61.                AssignUserID ${project_name} webapps
  62.        </ifmodule>
  63.  
  64.        <Directory \"/\">
  65.                Options Indexes FollowSymLinks MultiViews
  66.                DirectoryIndex index.php
  67.                AllowOverride All
  68.                Allow from ${ndd}
  69.                Require all granted
  70.        </Directory>
  71.  
  72.        LogLevel warn
  73.  
  74.        ErrorLog    /webapps/logs/${project_name}/error.log
  75.        CustomLog   /webapps/logs/${project_name}/access.log combined
  76. </VirtualHost>" > "/etc/apache2/sites-available/${project_name}.conf" || logger -s -t [ERROR] -p user.error "failed create apache virtualhost"
  77.  
  78. logger -s -t [INFO] -p user.info "active apache virtualhost"
  79. a2ensite ${project_name} || logger -s -t [ERROR] -p user.error "failed active apache virtualhost"
  80.  
  81. if [ -f "/webapps/client_${project_name}/${project_name}/.htaccess" ]; then
  82.         logger -s -t [INFO] -p user.info "update RewriteBase"
  83.         sed -i -e "s/RewriteBase \/${project_name}\//RewriteBase \//" "/webapps/client/${project_name}/${project_name}/.htaccess" || logger -s -t [ERROR] -p user.error "failed update RewriteBase"
  84.         logger -s -t [INFO] -p user.info "update RewriteRule"
  85.         sed -i -e "s/RewriteRule\ .\ \/${project_name}\/index.php\ \[L\]/RewriteRule\ .\ \/index.php\ \[L\]/" "/webapps/client/${project_name}/${project_name}/.htaccess" || logger -s -t [ERROR] -p user.error "failed update RewriteRule"
  86. fi
  87.  
  88. if [ ! -z ${database_name} ] ; then
  89.         if ${clone_db}; then
  90.                 logger -s -t [INFO] -p user.info "connect to dev.bluteams.fr to get database dump"
  91.                 ssh bluteams@dev.bluteams.fr -p 12 mysqldump -u ${database_user} -p ${database_name} > sql.sql || logger -s -t [ERROR] -p user.error "failed connect to dev.bluteams.fr to get database dump"
  92.         fi
  93.  
  94.         logger -s -t [INFO] -p user.info "create user for local database"
  95.         mysql -u root -p -e "CREATE USER ${database_user}@localhost IDENTIFIED BY '${database_passwd}';";
  96.  
  97.         logger -s -t [INFO] -p user.info "create local database"
  98.         mysql -u root -p -e "CREATE DATABASE ${database_name} /*\!40100 DEFAULT CHARACTER SET utf8 */;";
  99.         logger -s -t [INFO] -p user.info "grant user to this database"
  100.         mysql -u root -p -e "GRANT ALL PRIVILEGES ON ${database_name}.* TO '${database_user}'@'localhost'";
  101.     if ${clone}; then
  102.             logger -s -t [INFO] -p user.info "import databse datas"
  103.             mysql -u bluteams -p ${database_name} < sql.sql || logger -s -t [ERROR] -p user.error "failed import database"
  104.             logger -s -t [INFO] -p user.info "delete database dump"
  105.             rm sql.sql || logger -s -t [ERROR] -p user.error "failed rm dump"
  106.     fi
  107. fi
  108.  
  109. service apache2 reload
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement