Last active
August 3, 2018 08:45
-
-
Save Xifax/cf8ddf7f21a9c7c94e27f7594265eeb3 to your computer and use it in GitHub Desktop.
Vagrant image for Ubuntu 16.04 with docker and kubernetes + GUI options and other paraphernalia
This file contains 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/xenial64" | |
# alternative box | |
# config.vm.box = "bento/ubuntu-16.04" | |
# create this folder on host machine before 'vagrant up' | |
config.vm.synced_folder "./repos", "/home/vagrant/repos" | |
config.vm.network "forwarded_port", guest: 80, host: 8080 | |
config.vm.provider "virtualbox" do |vb| | |
# Display the VirtualBox GUI when booting the machine | |
vb.gui = true | |
vb.memory = "6128" | |
vb.cpus = 2 | |
# by default will be capped at 50% cpu load | |
# vb.customize ["modifyvm", :id, "--accelerate3d", "on"] | |
vb.customize ["modifyvm", :id, "--cpuexecutioncap", "90"] | |
vb.customize ["modifyvm", :id, "--vram", "256"] | |
vb.customize ["modifyvm", :id, "--clipboard", "bidirectional"] | |
vb.customize ["modifyvm", :id, "--draganddrop", "bidirectional"] | |
end | |
config.vm.provision "shell", inline: <<-SHELL | |
apt-get update | |
# java | |
sudo apt-get install -y default-jre | |
sudo apt-get install -y default-jdk | |
sudo add-apt-repository -y ppa:webupd8team/java | |
sudo apt-get update | |
# preemptively accept oracle license | |
echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections | |
echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections | |
sudo apt-get install -y oracle-java8-installer | |
# python (call python3.6 for this version) | |
sudo add-apt-repository -y ppa:deadsnakes/ppa | |
sudo apt-get update | |
sudo apt-get install -y python3.6 | |
curl https://bootstrap.pypa.io/get-pip.py | sudo python3.6 | |
# use python3.6 as python3 (BEWARE: may break some packages installed afterwards) | |
# sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2 | |
# docker | |
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common | |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - | |
sudo apt-key -y fingerprint 0EBFCD88 | |
sudo add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | |
# allow non-root to use docker | |
sudo usermod -aG docker $USER | |
# docker-ce | |
sudo apt-get update | |
sudo apt-get install -y docker-ce | |
# kops binaries | |
wget https://github.com/kubernetes/kops/releases/download/1.8.0/kops-linux-amd64 | |
chmod +x kops-linux-amd64 | |
sudo mv kops-linux-amd64 /usr/local/bin/kops | |
# kubectl | |
sudo apt-get update && sudo apt-get install -y apt-transport-https | |
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - | |
sudo touch /etc/apt/sources.list.d/kubernetes.list | |
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list | |
sudo apt-get update | |
sudo apt-get install -y kubectl | |
kubectl version | |
# aliases | |
sudo apt-get install -y zsh | |
sudo chsh -s /bin/zsh vagrant | |
bash -c 'echo alias ai=\"sudo apt-get install\"' >> /home/vagrant/.zshrc | |
bash -c 'echo alias au=\"sudo apt-get update\"' >> /home/vagrant/.zshrc | |
# UI stuff (startx to launch GUI) | |
sudo apt-get install -y xorg mate virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 | |
echo 'exec mate-session' >> /home/vagrant/.xinitrc | |
sudo VBoxClient --clipboard --display | |
# UI: terminal | |
sudo -u vagrant wget -O xt https://git.io/v7eBS && chmod +x xt && ./xt && rm xt | |
# UI: fonts | |
wget "https://github.com/be5invis/Iosevka/releases/download/v2.0.0/01-iosevka-2.0.0.zip" | |
unzip 01-iosevka-2.0.0.zip | |
sudo mkdir -p /usr/share/fonts/truetype/Iosevka | |
sudo cp ttf/*.ttf /usr/share/fonts/truetype/Iosevka/ | |
sudo fc-cache -fv | |
SHELL | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment