82 lines
2.5 KiB
Ruby
82 lines
2.5 KiB
Ruby
# -*- mode: ruby -*-
|
|
# vi: set ft=ruby :
|
|
|
|
Vagrant.configure(2) do |config|
|
|
|
|
config.vm.box = "ubuntu/bionic64"
|
|
config.vm.provision "shell", inline: <<-SHELL
|
|
|
|
cd /tmp
|
|
|
|
PACKERVERSION=1.8.2
|
|
PACKERDOWNLOAD=https://releases.hashicorp.com/packer/${PACKERVERSION}/packer_${PACKERVERSION}_linux_amd64.zip
|
|
TERRAFORMVERSION=1.2.4
|
|
TERRAFORMDOWNLOAD=https://releases.hashicorp.com/terraform/${TERRAFORMVERSION}/terraform_${TERRAFORMVERSION}_linux_amd64.zip
|
|
|
|
echo "Dependencies..."
|
|
sudo apt-get install -y \
|
|
apt-transport-https \
|
|
ca-certificates \
|
|
curl \
|
|
gnupg \
|
|
gnupg-agent \
|
|
lsb-release \
|
|
software-properties-common \
|
|
unzip
|
|
|
|
# Azure CLI
|
|
curl -sL https://packages.microsoft.com/keys/microsoft.asc |
|
|
gpg --dearmor |
|
|
sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null
|
|
AZ_REPO=$(lsb_release -cs)
|
|
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" |
|
|
sudo tee /etc/apt/sources.list.d/azure-cli.list
|
|
sudo apt-get update
|
|
sudo apt-get install azure-cli
|
|
|
|
# Disable the firewall
|
|
sudo ufw disable
|
|
|
|
## Packer
|
|
echo Fetching Packer...
|
|
curl -s -L $PACKERDOWNLOAD > packer.zip
|
|
echo Installing Packer...
|
|
unzip packer.zip -d /usr/local/bin
|
|
chmod 0755 /usr/local/bin/packer
|
|
chown root:root /usr/local/bin/packer
|
|
|
|
## Terraform
|
|
echo Fetching Terraform...
|
|
curl -s -L $TERRAFORMDOWNLOAD > terraform.zip
|
|
echo Installing Terraform...
|
|
unzip terraform.zip -d /usr/local/bin
|
|
chmod 0755 /usr/local/bin/terraform
|
|
chown root:root /usr/local/bin/terraform
|
|
|
|
# Download and install Docker.
|
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo 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
|
|
usermod -aG docker vagrant
|
|
|
|
SHELL
|
|
|
|
config.vm.synced_folder "aws/", "/home/vagrant/aws", owner: "vagrant", group: "vagrant"
|
|
config.vm.synced_folder "azure/", "/home/vagrant/azure", owner: "vagrant", group: "vagrant"
|
|
config.vm.synced_folder "shared/", "/home/vagrant/shared", owner: "vagrant", group: "vagrant"
|
|
config.vm.synced_folder "examples/", "/home/vagrant/examples", owner: "vagrant", group: "vagrant"
|
|
|
|
config.vm.provider "virtualbox" do |vb|
|
|
vb.memory = "2048"
|
|
vb.cpus = 2
|
|
end
|
|
|
|
end
|