Skip to content

Instantly share code, notes, and snippets.

@antarr
Created February 28, 2020 14:29
Show Gist options
  • Save antarr/967a080d2cfe1e231cd3ab9cc84de1d4 to your computer and use it in GitHub Desktop.
Save antarr/967a080d2cfe1e231cd3ab9cc84de1d4 to your computer and use it in GitHub Desktop.
migrate mysql to pg
# frozen_string_literal: true
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure('2') do |config|
config.vm.box = 'ubuntu/xenial64'
config.vm.network 'forwarded_port', guest: 80, host: 80, auto_correct: true
config.vm.network 'forwarded_port', guest: 443, host: 443, auto_correct: true
config.vm.network 'forwarded_port', guest: 1234, host: 61_234, auto_correct: true
config.vm.network 'forwarded_port', guest: 3000, host: 3000, auto_correct: true
config.vm.network 'forwarded_port', guest: 4443, host: 4443, auto_correct: true
config.vm.network 'forwarded_port', guest: 9515, host: 9515, auto_correct: true
config.vm.network 'forwarded_port', guest: 10_000, host: 10_000, auto_correct: true
config.vm.network 'forwarded_port', guest: 5002, host: 5002, auto_correct: true
# config.vm.network 'forwarded_port', guest: 5432, host: 5432, auto_correct: true
config.vm.network 'forwarded_port', guest: 6379, host: 6379, auto_correct: true
# configure virtualbox host
config.vm.provider 'virtualbox' do |vb|
vb.memory = '4096'
vb.cpus = '4'
end
# 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'
# Always upgrade to latest packages
config.vm.provision 'shell', run: 'always', inline: <<-SHELL
apt-get update
apt-get -y upgrade
sudo apt-get -y install g++ qt5-default libqt5webkit5-dev gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-x
debconf-set-selections <<< 'mysql-server mysql-server/root_password password vagrant'
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password vagrant'
sudo apt-get -y install libmysqlclient-dev mysql-server libssl-dev
sudo apt-get -y install unixodbc-dev
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get -y install npm
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn
SHELL
# Install Ruby2.6 from Brightbox APT repository
config.vm.provision 'shell', inline: <<-SHELL
apt-get -y install software-properties-common
apt-add-repository -y ppa:brightbox/ruby-ng
apt-get update
apt-get -y install ruby-switch ruby-bundler ruby2.6 ruby2.6-dev
sudo gem install bundler -v 1.17.3
SHELL
config.vm.provision 'shell', inline: <<-SHELL
echo "installing redis"
sudo apt-add-repository -y ppa:chris-lea/redis-server
sudo apt-get update
sudo apt-get -y install redis-server
sudo sed -i 's/^appendonly no/appendonly yes/' /etc/redis/redis.conf
sudo service redis-server restart
SHELL
# Install Passenger + Nginx through Phusion's APT repository
config.vm.provision 'shell', inline: <<-SHELL
apt-get install -y dirmngr gnupg
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main" > /etc/apt/sources.list.d/passenger.list
apt-get update
apt-get install -y nginx-extras passenger
SHELL
##
## Additional services that are not needed but may help in managing the server.
## Note that for webmin specifically, a port needs to be forwarded for it to work.
##
## WEBMIN
## ref.: https://doxfer.webmin.com/Webmin/Installation#apt-get_.28Debian.2FUbuntu.2FMint.29
## IMPORTANT: Make sure wget is being installed above. Credentials for webmin should be vagrant/vagrant.
##
config.vm.provision 'shell', inline: <<-SHELL
echo -e "\n --> Installing Webmin.\n\n"
sh -c 'echo "deb http://download.webmin.com/download/repository sarge contrib" > /etc/apt/sources.list.d/webmin.list'
wget -qO - http://www.webmin.com/jcameron-key.asc | sudo apt-key add -
apt-get update
apt-get install -y webmin >/dev/null 2>&1
apt-get -y install memcached
apt-get -y install xvfb libgtk-3-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2
SHELL
# # Run the shell script inline provisioner
# config.vm.provision 'shell', inline: <<-SHELL
# echo "-------------------- updating package lists"
# sudo apt-get update -y
# sudo apt upgrade -y
# sudo apt -y install vim bash-completion wget ca-certificates libpq-dev
# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list
# sudo apt update -y
# echo "-------------------- installing postgresql"
# sudo apt install -y postgresql-12 postgresql-client-12
# systemctl status postgresql.service
# SHELL
# config.vm.provision 'shell', inline: <<-SHELL
# # fix permissions
# echo "-------------------- fixing listen_addresses on postgresql.conf"
# sudo sed -i "s/#listen_address.*/listen_addresses '*'/" /etc/postgresql/12/main/postgresql.conf
# echo "-------------------- fixing postgres pg_hba.conf file"
# # replace the ipv4 host line with the above line
# sudo cat >> /etc/postgresql/12/main/pg_hba.conf <<EOF
# # Accept all IPv4 connections - FOR DEVELOPMENT ONLY!!!
# host all all 0.0.0.0/0 md5
# EOF
# SHELL
# config.vm.provision 'shell', inline: <<-SHELL
# # fix permissions
# echo "-------------------- fixing listen_addresses on postgresql.conf"
# sudo sed -i "s/#listen_address.*/listen_addresses '*'/" /etc/postgresql/12/main/postgresql.conf
# echo "-------------------- fixing postgres pg_hba.conf file"
# # replace the ipv4 host line with the above line
# sudo cat >> /etc/postgresql/12/main/pg_hba.conf <<EOF
# # Accept all IPv4 connections - FOR DEVELOPMENT ONLY!!!
# host all all 0.0.0.0/0 md5
# EOF
# SHELL
# config.vm.provision 'shell', inline: 'sudo service postgresql restart'
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment