Editing New Server Setup - ovfc/losap GitHub Wiki

Updated from Sanjay's LOSAP

The following script will install the app on a base CentOS installation with selinux turned off and the "Development Tools" package group installed. It takes care of all package dependencies and configuration. It must be run as root. It takes two parameters, the desired database root password and the desired database user password.

[root@fedora ~]# ./install 
Usage: install db_root_password db_user_password
#!/bin/bash
# Installs and configures losap on a new base CentOS installation

set -e

if [ ! $# -eq 2 ]
then
  echo "Usage: `basename $0` db_root_password db_user_password"
  exit 1
fi

INSTALL_DIR=`pwd`
DB_ROOT_PASSWORD=$1
DB_USER_PASSWORD=$2
MYSQL_SECURE_SQL=mysql_secure.sql
DB_CONFIG_SQL=db_config.sql
LOSAP_CONF=losap.conf
LOSAP_USER_SH=losap_user.sh

# Write out sql scripts and apache conf file
cat > $MYSQL_SECURE_SQL <<EOF
update mysql.user set Password=PASSWORD('root_password') where User='root';
delete from mysql.user where User='root' and Host!='localhost';
drop database test;
delete from mysql.db where Db='test' or Db='test\\_%';
flush privileges;
EOF

cat > $DB_CONFIG_SQL <<EOF
create database losap;
create user 'losap'@'localhost' identified by 'new_password';
grant all privileges on losap.* to 'losap'@'localhost';
flush privileges;
EOF

cat > $LOSAP_CONF <<EOF
LoadModule passenger_module /home/losap/.rvm/gems/ruby-1.9.3-p545@losap/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /home/losap/.rvm/gems/ruby-1.9.3-p545@losap/gems/passenger-3.0.19
PassengerRuby /home/losap/.rvm/wrappers/ruby-1.9.3-p545@losap/ruby
<VirtualHost *:80>
  ServerName losap.ovfc
  DocumentRoot /home/losap/losap/public
  <Directory /home/losap/losap/public>
    AllowOverride all              
    Options -MultiViews            
  </Directory>
</VirtualHost>
EOF

cat > $LOSAP_USER_SH <<EOF
#!/bin/bash

# Install RVM
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -L https://get.rvm.io | bash -s stable
source /home/losap/.rvm/scripts/rvm
. /home/losap/.bash_profile
echo 'export rvm_project_rvmrc=1' >> /home/losap/.rvmrc && rvm reload

# Install Ruby 1.9.3 and create a gemset
rvm install 1.9.3-p545
rvm use 1.9.3-p545
rvm gemset create losap
rvm gemset use losap

# Install LOSAP, its requisite gems, and set up the database
git clone git://github.com/ovfc/losap
cd losap
sed -i s/ovlosapfc/$DB_USER_PASSWORD/g config/database.yml
gem install bundler
bundle install --without development test
RAILS_ENV=production rake db:setup
RAILS_ENV=production rake assets:precompile

# Install Passenger
gem install passenger -v 3.0.19
passenger-install-apache2-module -a
EOF

# Enable EPEL repo
wget --no-check-certificate https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/epel-release-6-5.noarch.rpm
rpm -Uvh epel-release-6-5.noarch.rpm

# Install prerequisite packages
yum install -y mysql-server mysql-devel httpd-devel curl-devel ncurses-devel readline-devel libyaml-devel libffi-devel libxslt-devel sqlite-devel

# Start mysql and register services
service mysqld start
chkconfig mysqld on
chkconfig httpd on

# Secure DBMS
sed "s/root_password/$DB_ROOT_PASSWORD/g" mysql_secure.sql | mysql -u root -h localhost -p $DB_ROOT_PASSWORD

# Create database
sed "s/new_password/$DB_USER_PASSWORD/g" db_config.sql | mysql -u root -h localhost -p $DB_ROOT_PASSWORD

# Set up losap user
groupadd losap
useradd -d /home/losap -s /bin/bash -g losap losap
chmod 755 /home/losap

# Install application
echo "export rvm_trust_rvmrcs_flag=1" >> /etc/rvmrc
mv $LOSAP_USER_SH /home/losap
su - -c"cd /home/losap && bash $LOSAP_USER_SH" losap

cp $LOSAP_CONF /etc/httpd/conf.d
service httpd start

rm -f $MYSQL_SECURE_SQL
rm -f $DB_CONFIG_SQL
rm -f $LOSAP_CONF
rm -f /home/losap/$LOSAP_USER_SH
rm -f epel-release-6-8.noarch.rpm
⚠️ **GitHub.com Fallback** ⚠️