mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-18 14:02:15 +00:00
Enable vagrant env for development.
This commit is contained in:
112
config/vagrant/postgresql_setup.sh
Normal file
112
config/vagrant/postgresql_setup.sh
Normal file
@@ -0,0 +1,112 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# Expects three arguments:
|
||||
# $1 - database name
|
||||
# $2 - database user
|
||||
# #3 - database user password
|
||||
|
||||
# Via https://github.com/kiere/vagrant-heroku-cedar-14/blob/master/config/vagrant/postgresql_setup.sh
|
||||
|
||||
echo "=== Begin Vagrant Provisioning using 'config/vagrant/postgresql_setup.sh'"
|
||||
|
||||
APP_DB_NAME=$1
|
||||
APP_DB_USER=$2
|
||||
APP_DB_PASS=$3
|
||||
|
||||
# Edit the following to change the version of PostgreSQL that is installed
|
||||
PG_VERSION=9.4
|
||||
|
||||
###########################################################
|
||||
# Changes below this line are probably not necessary
|
||||
###########################################################
|
||||
print_db_usage () {
|
||||
echo "Your PostgreSQL database has been setup and can be accessed on your local machine on the forwarded port (default: 15432)"
|
||||
echo " Host: localhost"
|
||||
echo " Port: 15432"
|
||||
echo " Database: $APP_DB_NAME"
|
||||
echo " Username: $APP_DB_USER"
|
||||
echo " Password: $APP_DB_PASS"
|
||||
echo ""
|
||||
echo "Admin access to postgres user via VM:"
|
||||
echo " vagrant ssh"
|
||||
echo " sudo su - postgres"
|
||||
echo ""
|
||||
echo "psql access to app database user via VM:"
|
||||
echo " vagrant ssh"
|
||||
echo " sudo su - postgres"
|
||||
echo " PGUSER=$APP_DB_USER PGPASSWORD=$APP_DB_PASS psql -h localhost $APP_DB_NAME"
|
||||
echo ""
|
||||
echo "Env variable for application development:"
|
||||
echo " DATABASE_URL=postgresql://$APP_DB_USER:$APP_DB_PASS@localhost:15432/$APP_DB_NAME"
|
||||
echo ""
|
||||
echo "Local command to access the database via psql:"
|
||||
echo " PGUSER=$APP_DB_USER PGPASSWORD=$APP_DB_PASS psql -h localhost -p 15432 $APP_DB_NAME"
|
||||
}
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
PROVISIONED_ON=/etc/vm_provision_on_timestamp
|
||||
if [ -f "$PROVISIONED_ON" ]
|
||||
then
|
||||
echo "VM was already provisioned at: $(cat $PROVISIONED_ON)"
|
||||
echo "To run system updates manually login via 'vagrant ssh' and run 'apt-get update && apt-get upgrade'"
|
||||
echo ""
|
||||
print_db_usage
|
||||
exit
|
||||
fi
|
||||
|
||||
PG_REPO_APT_SOURCE=/etc/apt/sources.list.d/pgdg.list
|
||||
if [ ! -f "$PG_REPO_APT_SOURCE" ]
|
||||
then
|
||||
# Add PG apt repo:
|
||||
echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > "$PG_REPO_APT_SOURCE"
|
||||
|
||||
# Add PGDG repo key:
|
||||
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | apt-key add -
|
||||
fi
|
||||
|
||||
# Update package list and upgrade all packages
|
||||
apt-get update
|
||||
apt-get -y upgrade
|
||||
|
||||
apt-get -y install "postgresql-$PG_VERSION" "postgresql-contrib-$PG_VERSION"
|
||||
apt-get -y install libpq-dev # For building ruby 'pg' gem
|
||||
|
||||
PG_CONF="/etc/postgresql/$PG_VERSION/main/postgresql.conf"
|
||||
PG_HBA="/etc/postgresql/$PG_VERSION/main/pg_hba.conf"
|
||||
PG_DIR="/var/lib/postgresql/$PG_VERSION/main"
|
||||
|
||||
# Edit postgresql.conf to change listen address to '*':
|
||||
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" "$PG_CONF"
|
||||
|
||||
# Append to pg_hba.conf to add password auth:
|
||||
echo "host all all all md5" >> "$PG_HBA"
|
||||
|
||||
# Explicitly set default client_encoding
|
||||
echo "client_encoding = utf8" >> "$PG_CONF"
|
||||
|
||||
# Restart so that all new config is loaded:
|
||||
service postgresql restart
|
||||
|
||||
cat << EOF | su - postgres -c psql
|
||||
-- Create the database user:
|
||||
CREATE USER $APP_DB_USER PASSWORD '$APP_DB_PASS';
|
||||
EOF
|
||||
|
||||
cat << EOF | su - postgres -c psql
|
||||
-- Create the database:
|
||||
CREATE DATABASE $APP_DB_NAME WITH OWNER=$APP_DB_USER
|
||||
LC_COLLATE='en_US.utf8'
|
||||
LC_CTYPE='en_US.utf8'
|
||||
ENCODING='UTF8'
|
||||
TEMPLATE=template0;
|
||||
EOF
|
||||
|
||||
# Tag the provision time:
|
||||
date > "$PROVISIONED_ON"
|
||||
|
||||
echo "Successfully created PostgreSQL dev virtual machine."
|
||||
echo ""
|
||||
print_db_usage
|
||||
|
||||
echo "=== End Vagrant Provisioning using 'config/vagrant/postgresql_setup.sh'"
|
||||
Reference in New Issue
Block a user