Last active
March 13, 2019 10:20
-
-
Save slint/c79ab58f5335a5a6690e53631ffdda19 to your computer and use it in GitHub Desktop.
Invenio Bootcamp Vagrant setup
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
#!/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 |
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
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