-
-
Save tugrulcan/2260184f7714a823974f535a6afa70c4 to your computer and use it in GitHub Desktop.
Vagrantfile with postgres
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |
VAGRANTFILE_API_VERSION = "2" | |
$script = <<SCRIPT | |
echo "-------------------- updating package lists" | |
apt-get update | |
# gotta put this before the upgrade, b/c it reboots and then all commands are lost | |
echo "-------------------- installing postgres" | |
apt-get install -y --force-yes postgresql | |
# fix permissions | |
echo "-------------------- fixing listen_addresses on postgresql.conf" | |
sudo sed -i "s/#listen_address.*/listen_addresses '*'/" /etc/postgresql/9.1/main/postgresql.conf | |
echo "-------------------- fixing postgres pg_hba.conf file" | |
# replace the ipv4 host line with the above line | |
sudo cat >> /etc/postgresql/9.1/main/pg_hba.conf <<EOF | |
# Accept all IPv4 connections - FOR DEVELOPMENT ONLY!!! | |
host all all 0.0.0.0/0 md5 | |
EOF | |
echo "-------------------- creating postgres vagrant role with password vagrant" | |
# Create Role and login | |
sudo su postgres -c "psql -c \"CREATE ROLE vagrant SUPERUSER LOGIN PASSWORD 'vagrant'\" " | |
echo "-------------------- creating wtm database" | |
# Create WTM database | |
sudo su postgres -c "createdb -E UTF8 -T template0 --locale=en_US.utf8 -O vagrant wtm" | |
echo "-------------------- upgrading packages to latest" | |
apt-get upgrade -y | |
SCRIPT | |
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
# Every Vagrant virtual environment requires a box to build off of. | |
config.vm.box = "precise32" | |
# speed up apt-get | |
config.cache.auto_detect = true | |
# The url from where the 'config.vm.box' box will be fetched if it | |
# doesn't already exist on the user's system. | |
config.vm.box_url = "http://files.vagrantup.com/precise32.box" | |
# Create a forwarded port mapping which allows access to a specific port | |
# within the machine from a port on the host machine. In the example below, | |
# accessing "localhost:8080" will access port 80 on the guest machine. | |
config.vm.network :forwarded_port, guest: 5432, host: 5433 | |
# Run the shell script inline provisioner | |
config.vm.provision "shell", inline: $script | |
# Create a private network, which allows host-only access to the machine | |
# using a specific IP. | |
# config.vm.network :private_network, ip: "192.168.33.10" | |
# Create a public network, which generally matched to bridged network. | |
# Bridged networks make the machine appear as another physical device on | |
# your network. | |
# config.vm.network :public_network | |
# If true, then any SSH connections made will enable agent forwarding. | |
# Default value: false | |
# config.ssh.forward_agent = true | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment