Skip to content

Instantly share code, notes, and snippets.

@hyamamoto
Last active September 5, 2017 11:35
Show Gist options
  • Save hyamamoto/9436217d69dd16e06a8da375172db113 to your computer and use it in GitHub Desktop.
Save hyamamoto/9436217d69dd16e06a8da375172db113 to your computer and use it in GitHub Desktop.
Vagrant box: CentOS 7 + PostgreSQL9.4, The port 5432 of a guest os will be mapped to a host's 5432.

vagrant: centos7 + postgres9.4

Spin up the VM with

$vagrant up

then,

$psql -U postgres -W -h 127.0.0.1
Password: postgres

NOTE: The port 5432 on your localhost must be unused.

#!/bin/bash
echo << TIME > /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC="false"
TIME
source /etc/sysconfig/clock
/bin/cp -f /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
sudo yum install -y http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-3.noarch.rpm
sudo yum install -y vim
sudo yum install -y postgresql94 postgresql94-devel postgresql94-server postgresql94-contrib
POSTGRES_RUNNING=$(service postgresql-9.4 status | egrep "postgresql.*running" | wc -l)
if [ "$POSTGRES_RUNNING" -ne 1 ]; then
echo 'Starting Postgres'
sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb
# sudo /sbin/service postgresql-9.4 initdb
sudo /sbin/service postgresql-9.4 start
sudo /sbin/chkconfig postgresql-9.4 on
else
echo "Postgres is running"
fi
ln -s /usr/pgsql-9.4/bin/psql /usr/bin/psql
sudo ln -s /usr/pgsql-9.4/bin/postgres /usr/bin/postgres
echo "Creating postgres user:"
ALTER_POSTGRES_USER_SQL="ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres'"
sudo -u postgres psql --command="$ALTER_POSTGRES_USER_SQL"
echo "Updating postgresql connection info"
sudo cp /var/lib/pgsql/9.4/data/pg_hba.conf .
sudo chmod 666 pg_hba.conf
sed 's/ident/md5/' < pg_hba.conf > pg_hba2.conf
echo 'host all all 0.0.0.0/0 md5' >> pg_hba2.conf
sudo cp pg_hba2.conf /var/lib/pgsql/9.4/data/pg_hba.conf
sudo chmod 600 /var/lib/pgsql/9.4/data/pg_hba.conf
sudo cp /var/lib/pgsql/9.4/data/postgresql.conf .
sudo chmod 666 postgresql.conf
sed "s/^#listen_addresses.*$/listen_addresses = '0.0.0.0'/" < postgresql.conf > postgresql2.conf
sudo cp postgresql2.conf /var/lib/pgsql/9.4/data/postgresql.conf
sudo chmod 600 /var/lib/pgsql/9.4/data/postgresql.conf
echo "Patching complete, restarting"
sudo /sbin/service postgresql-9.4 restart
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Every Vagrant virtual environment requires a box to build off of.
# config.vm.box = "ubuntu/trusty64"
config.vm.box = "geerlingguy/centos7"
# if Vagrant.has_plugin?("vagrant-proxyconf")
# config.proxy.http = "http://proxy:port"
# config.proxy.https = "http://proxy:port"
# config.proxy.no_proxy = "localhost,127.0.0.1"
# end
config.vm.network "forwarded_port", guest: 5432, host: 5432
config.vm.provision :shell, path: "boot.sh"
config.vm.network "private_network", ip: "192.168.33.10"
# config.vm.network "public_network"
# config.ssh.forward_agent = true
# config.vm.synced_folder "../data", "/vagrant_data"
# config.vm.provider "virtualbox" do |vb|
# # Don't boot with headless mode
# vb.gui = true
#
# # Use VBoxManage to customize the VM. For example to change memory:
# vb.customize ["modifyvm", :id, "--memory", "1024"]
# end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment