Browse Source

most work done on the install script

rkaldung 10 years ago
parent
commit
592e961e70
1 changed files with 80 additions and 12 deletions
  1. 80 12
      script/install.sh

+ 80 - 12
script/install.sh

@@ -1,15 +1,83 @@
 #!/bin/bash
-get_distro(){
-  arch=$(uname -m)
-  kernel=$(uname -r)
-  if [ -f /etc/lsb-release ]; then
-    os=$(lsb_release -s -d)
-  elif [ -f /etc/debian_version ]; then
-    os="Debian $(cat /etc/debian_version)"
-  elif [ -f /etc/redhat-release ]; then
-    os=`cat /etc/redhat-release`
-  else
-    os="$(uname -s) $(uname -r)"
-  fi
+
+USER=zammad
+REPOURL=git@github.com:martini/zammad.git
+DBNAME=zammad
+DBUSER=zammad
+
+function check_requirements() {
+    items="git useradd sudo getent curl bash gcc make svn apg"
+    for item in $items 
+    do
+        which $item > /dev/null
+        if [ $? -ne 0 ]; then
+           echo Please install $item and start this script again.
+           exit 1
+        fi
+    done
 }
 
+check_requirements
+
+#
+# @TODO Should the mysql user be created?
+# @TODO Install Elasticsearch?
+# @TODO Should the script create a VirtualHost or a config file to include for apache/nginx? 
+#
+
+#
+# Check for zammad user and create if needed
+#
+id -u "${USER}" > /dev/null 2>&1
+if [ $? -ne 0 ]; then
+    useradd -c 'user running zammad' -m -s /bin/bash $USER
+fi
+
+#
+# find the user's homedir and primary group name
+#
+HOMEDIR=$(getent passwd $USER | cut -d: -f 6)
+GROUP=$(id -gn $USER)
+
+cd "${HOMEDIR}"
+sudo -u "${USER}" -H git clone $REPOURL zammad
+cd zammad
+LATEST=$(git tag --list|sort|tail -1)
+git checkout tags/"${LATEST}"
+chown -R "${USER}":"${GROUP}" .
+
+#
+# RVM
+#
+sudo -u "${USER}" -H bash -c 'curl -sSL https://get.rvm.io | bash -s stable'
+
+
+#
+# install Ruby
+#
+sudo -u "${USER}" -H bash -l -c 'rvm install 2.1.2'
+sudo -u "${USER}" -H bash -l -c 'rvm alias create default 2.1.2'
+
+#
+# after rvm requirements
+# Installing required packages: gawk, g++, libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgdbm-dev, libncurses5-dev, automake, libtool, bison, pkg-config, libffi-dev................
+
+
+sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && gem install rails --no-ri --no-rdoc'
+sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && bundle install'
+
+DBPASS=$(apg -x8|head -1)
+echo Password $DBPASS 
+mysql -e "GRANT ALL ON ${DBNAME}.* to '${DBUSER}'@'localhost' IDENTIFIED BY '$DBPASS'";
+sudo -u $USER -H cp ${HOMEDIR}/zammad/config/database.yml.dist ${HOMEDIR}/zammad/config/database.yml
+sudo -u $USER -H sed -i s/some_pass/${DBPASS}/g  ${HOMEDIR}/zammad/config/database.yml
+sudo -u $USER -H sed -i s/some_user/${DBUSER}/g  ${HOMEDIR}/zammad/config/database.yml
+sudo -u $USER -H sed -i s/zammad_prod/zammad/g  ${HOMEDIR}/zammad/config/database.yml
+
+#
+#
+#
+sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && RAILS_ENV=production rake db:create'
+sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && RAILS_ENV=production rake db:migrate'
+sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && RAILS_ENV=production rake db:seed'
+sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && RAILS_ENV=production rake assets:precompile'