Skip to content

Instantly share code, notes, and snippets.

@slint
Last active March 13, 2019 10:20
Show Gist options
  • Save slint/c79ab58f5335a5a6690e53631ffdda19 to your computer and use it in GitHub Desktop.
Save slint/c79ab58f5335a5a6690e53631ffdda19 to your computer and use it in GitHub Desktop.
Invenio Bootcamp Vagrant setup
#!/usr/bin/env bash
apt-get update
apt-get install -y apt-utils software-properties-common apt-transport-https \
gnupg-agent ca-certificates git curl python3-dev python3-pip \
libcairo2-dev fonts-dejavu libfreetype6-dev uwsgi-plugin-python
# Set "python3" as the default "python"
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
# Install NodeJS/npm
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs
# Install docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io
# Allow the "vagrant" user to use docker
usermod -aG docker vagrant
# See https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
echo vm.max_map_count=262144 > /etc/sysctl.d/vm_max_map_count.conf
sysctl --system
# Install docker-compose, cookiecutter and pipenv for the "vagrant" user
su -c "pip install --user cookiecutter pipenv docker-compose" vagrant
# Add "$HOME/.local/bin" to the "vagrant" user's PATH
cat >> /home/vagrant/.bashrc <<EOF
export PATH=\$HOME/.local/bin:\$PATH
EOF
cat >> /home/vagrant/.profile <<EOF
export PATH=\$HOME/.local/bin:\$PATH
EOF
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
# Enable GUI
config.vm.provider "virtualbox" do |v|
v.memory = 4096
v.cpus = 2
end
# Create a synced folder
config.vm.synced_folder "src/", "/home/vagrant/src"
# Install development environment prerequisites
config.vm.provision :shell, path: "bootstrap.sh"
# Network
config.vm.network "private_network", ip: "192.168.50.10"
# HAProxy
config.vm.network "forwarded_port", guest: 80, host: 80
config.vm.network "forwarded_port", guest: 443, host: 443
config.vm.network "forwarded_port", guest: 8080, host: 8080
# Web App
config.vm.network "forwarded_port", guest: 5000, host: 5000
# Redis
config.vm.network "forwarded_port", guest: 6379, host: 6379
# RabbitMQ
config.vm.network "forwarded_port", guest: 15672, host: 15672
config.vm.network "forwarded_port", guest: 5672, host: 5672
# PostgreSQL
config.vm.network "forwarded_port", guest: 5432, host: 5432
# Elasticsearch
config.vm.network "forwarded_port", guest: 9200, host: 9200
# Kibana
config.vm.network "forwarded_port", guest: 5601, host: 5601
# Flower
config.vm.network "forwarded_port", guest: 5555, host: 5555
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment