Skip to content

Instantly share code, notes, and snippets.

@glenux
Created November 6, 2019 15:51
Show Gist options
  • Save glenux/b8d6717b2377059104bbd8ea79a3342e to your computer and use it in GitHub Desktop.
Save glenux/b8d6717b2377059104bbd8ea79a3342e to your computer and use it in GitHub Desktop.
#!/bin/sh
set -e
set -u
export DEBIAN_FRONTEND=noninteractive
install_base() {
apt-get update
apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
wget \
vim \
gnupg2 \
software-properties-common
}
install_docker() {
# Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/debian/gpg \
| sudo apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
apt-get update
# Install the latest version of Docker CE and containerd
apt-get install -y docker-ce docker-ce-cli containerd.io
if ! grep '^docker:' /etc/group ; then
addgroup docker
fi
if ! grep '^docker:.*vagrant' /etc/group ; then
adduser vagrant docker
fi
}
install_docker_compose() {
# Install docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
}
install_postgres_client() {
apt-get update
apt-get install -y \
postgresql-client-11 \
python3-pip \
libpq-dev
pip3 install pgcli
}
install_base
# install_docker
# install_docker_compose
install_postgres_client
echo "SUCCESS."
#!/bin/sh
set -e
set -u
export DEBIAN_FRONTEND=noninteractive
install_base() {
apt-get update
apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
wget \
vim \
gnupg2 \
software-properties-common
}
install_docker() {
# Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/debian/gpg \
| sudo apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
apt-get update
# Install the latest version of Docker CE and containerd
apt-get install -y docker-ce docker-ce-cli containerd.io
if ! grep '^docker:' /etc/group ; then
addgroup docker
fi
if ! grep '^docker:.*vagrant' /etc/group ; then
adduser vagrant docker
fi
}
install_docker_compose() {
# Install docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
}
install_postgres() {
apt-get update
apt-get install -y \
postgresql-11
}
install_postgres_utils() {
apt-get update
apt-get install -y \
python3-pip \
libpq-dev
}
install_base
#install_docker
#install_docker_compose
install_postgres
install_postgres_utils
echo "SUCCESS."
# -*- mode: ruby -*-
# vi: set ft=ruby sw=2 st=2 et :
SERVERS_COUNT = 2
CLIENTS_COUNT = 1
HOSTS = {}
Vagrant.configure("2") do |config|
config.vm.box = "debian/buster64"
config.vm.box_check_update = false
# Limiter la RAM des VM
config.vm.provider "virtualbox" do |vb|
vb.memory = "1200"
end
# IP adresses suffixes will go down 10 by 10 starting from 250.
# IP adresses suffixes will go up 10 by 10 starting from 10.
server_ip = lambda { |i| "192.168.50.#{250-i*10}" }
client_ip = lambda { |i| "192.168.50.#{10+i*10}" }
# Create as many servers as needed
SERVERS_COUNT.times do |i|
config.vm.define "server#{i}" do |machine|
machine.vm.hostname = "server#{i}"
machine.vm.network "private_network", ip: server_ip.call(i)
# Redirect host ports (from physical machine) into the first server VM
HOSTS[machine.vm.hostname] = server_ip.call(i)
machine.vm.provision "shell", path: "provision/server.sh"
if i == 0
machine.vm.network "forwarded_port", guest: 80, host: 1080
machine.vm.network "forwarded_port", guest: 8080, host: 8080
machine.vm.network "forwarded_port", guest: 5432, host: 5432
end
end
end
# Create as many clients as needed
CLIENTS_COUNT.times do |i|
config.vm.define "client#{i}" do |machine|
machine.vm.hostname = "client#{i}"
machine.vm.network "private_network", ip: client_ip.call(i)
HOSTS[machine.vm.hostname] = client_ip.call(i)
machine.vm.provision "shell", path: "provision/client.sh"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment