mirror of https://github.com/mitchell/shortnr.git
188 lines
6.3 KiB
Ruby
188 lines
6.3 KiB
Ruby
|
# -*- mode: ruby -*-
|
||
|
# vim: ft=ruby foldmethod=indent
|
||
|
|
||
|
# frozen_string_literal: true
|
||
|
|
||
|
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||
|
# configures the configuration version. Please don't change it unless you know
|
||
|
# what you're doing.
|
||
|
Vagrant.configure('2') do |config| # rubocop:disable Metrics/BlockLength
|
||
|
config.vm.define 'dev' do |dev| # rubocop:disable Metrics/BlockLength
|
||
|
dev.vm.box = 'debian/buster64'
|
||
|
|
||
|
dev.vm.network 'forwarded_port', guest: 8080, host: 8080
|
||
|
dev.vm.network 'private_network', ip: '192.168.50.11'
|
||
|
|
||
|
dev.vm.provider 'virtualbox' do |vb|
|
||
|
vb.memory = '2048'
|
||
|
vb.cpus = 4
|
||
|
end
|
||
|
|
||
|
dev.vm.synced_folder '.', '/vagrant', type: 'rsync',
|
||
|
rsync__exclude: [
|
||
|
'*.ez',
|
||
|
'*.out',
|
||
|
'*.tfstate',
|
||
|
'*.tfstate.backup',
|
||
|
'*.tfvars',
|
||
|
'.elixir_ls/',
|
||
|
'.fetch',
|
||
|
'.terraform/',
|
||
|
'_build/',
|
||
|
'cover/',
|
||
|
'deps/',
|
||
|
'doc/',
|
||
|
'erl_crash.dump',
|
||
|
'service-*.tar'
|
||
|
]
|
||
|
|
||
|
dev.vm.provision 'shell', inline: <<-SHELL
|
||
|
### personal ###
|
||
|
# deps for my dotfiles
|
||
|
apt-get update
|
||
|
apt-get install -y git curl rsync
|
||
|
|
||
|
### fish shell ###
|
||
|
# deps for installing fish
|
||
|
apt-get install -y wget gpg
|
||
|
|
||
|
# adding the fish repo and installing fish
|
||
|
echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_10/ /' > /etc/apt/sources.list.d/shells:fish:release:3.list
|
||
|
wget -nv https://download.opensuse.org/repositories/shells:fish:release:3/Debian_10/Release.key -O Release.key
|
||
|
apt-key add - < Release.key
|
||
|
rm Release.key
|
||
|
apt-get update
|
||
|
apt-get install -y fish
|
||
|
|
||
|
# change vagrant user's default shell to fish
|
||
|
chsh -s /usr/bin/fish vagrant
|
||
|
|
||
|
### docker ###
|
||
|
# deps for docker
|
||
|
apt-get install -y \
|
||
|
apt-transport-https ca-certificates curl \
|
||
|
gnupg2 software-properties-common
|
||
|
|
||
|
# install docker-ce
|
||
|
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
|
||
|
add-apt-repository \
|
||
|
"deb [arch=amd64] https://download.docker.com/linux/debian \
|
||
|
$(lsb_release -cs) \
|
||
|
stable"
|
||
|
apt-get update
|
||
|
apt-get install -y docker-ce docker-ce-cli containerd.io
|
||
|
|
||
|
# install docker-compose
|
||
|
curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||
|
chmod +x /usr/local/bin/docker-compose
|
||
|
|
||
|
# add vagrant user to docker group
|
||
|
adduser vagrant docker
|
||
|
|
||
|
### asdf-vm ###
|
||
|
# deps for asdf-vm
|
||
|
apt-get install -y \
|
||
|
automake autoconf libreadline-dev \
|
||
|
libncurses-dev libssl-dev libyaml-dev \
|
||
|
libxslt-dev libffi-dev libtool \
|
||
|
unixodbc-dev unzip curl
|
||
|
|
||
|
# deps for asdf-erlang
|
||
|
apt-get install -y \
|
||
|
build-essential autoconf m4 \
|
||
|
libncurses5-dev libwxgtk3.0-dev libgl1-mesa-dev \
|
||
|
libglu1-mesa-dev libpng-dev libssh-dev \
|
||
|
unixodbc-dev xsltproc fop
|
||
|
SHELL
|
||
|
|
||
|
dev.vm.provision 'shell', privileged: false, inline: <<-SHELL
|
||
|
### personal ###
|
||
|
# run my dotfiles sync script
|
||
|
curl -L mjfs.us/sync | fish
|
||
|
|
||
|
### asdf-vm ###
|
||
|
# install asdf vm
|
||
|
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.7
|
||
|
echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish
|
||
|
cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions
|
||
|
|
||
|
# install various tools/languages with asdf
|
||
|
. $HOME/.asdf/asdf.sh
|
||
|
export PATH=$PATH:$HOME/.asdf/bin/
|
||
|
|
||
|
asdf plugin add neovim
|
||
|
asdf install neovim 0.4.3
|
||
|
asdf global neovim 0.4.3
|
||
|
|
||
|
asdf plugin add erlang
|
||
|
asdf install erlang 22.3
|
||
|
asdf global erlang 22.3
|
||
|
|
||
|
asdf plugin add elixir
|
||
|
asdf install elixir 1.10.2-otp-22
|
||
|
asdf global elixir 1.10.2-otp-22
|
||
|
SHELL
|
||
|
end
|
||
|
|
||
|
config.vm.define 'prod' do |prod|
|
||
|
prod.vm.box = 'debian/buster64'
|
||
|
|
||
|
prod.vm.network 'forwarded_port', guest: 8080, host: 8888
|
||
|
prod.vm.network 'private_network', ip: '192.168.50.10'
|
||
|
|
||
|
prod.vm.provider 'virtualbox' do |vb|
|
||
|
vb.memory = '2048'
|
||
|
vb.cpus = 4
|
||
|
end
|
||
|
|
||
|
prod.vm.synced_folder '.', '/vagrant', disabled: true
|
||
|
|
||
|
prod.vm.provision 'shell', inline: <<-SHELL
|
||
|
### personal ###
|
||
|
# deps for my dotfiles
|
||
|
apt-get update
|
||
|
apt-get install -y git curl rsync
|
||
|
|
||
|
### fish shell ###
|
||
|
# deps for installing fish
|
||
|
apt-get install -y wget gpg
|
||
|
|
||
|
# adding the fish repo and installing fish
|
||
|
echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_10/ /' > /etc/apt/sources.list.d/shells:fish:release:3.list
|
||
|
wget -nv https://download.opensuse.org/repositories/shells:fish:release:3/Debian_10/Release.key -O Release.key
|
||
|
apt-key add - < Release.key
|
||
|
rm Release.key
|
||
|
apt-get update
|
||
|
apt-get install -y fish
|
||
|
|
||
|
### asdf-vm ###
|
||
|
# deps for asdf-vm
|
||
|
apt-get install -y \
|
||
|
automake autoconf libreadline-dev \
|
||
|
libncurses-dev libssl-dev libyaml-dev \
|
||
|
libxslt-dev libffi-dev libtool \
|
||
|
unixodbc-dev unzip curl
|
||
|
SHELL
|
||
|
|
||
|
prod.vm.provision 'shell', privileged: false, inline: <<-SHELL
|
||
|
### personal ###
|
||
|
# run my dotfiles sync script
|
||
|
curl -L mjfs.us/sync | fish
|
||
|
|
||
|
### asdf-vm ###
|
||
|
# install asdf vm
|
||
|
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.7
|
||
|
echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish
|
||
|
cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions
|
||
|
|
||
|
# install various tools/languages with asdf
|
||
|
. $HOME/.asdf/asdf.sh
|
||
|
export PATH=$PATH:$HOME/.asdf/bin/
|
||
|
|
||
|
asdf plugin add neovim
|
||
|
asdf install neovim 0.4.3
|
||
|
asdf global neovim 0.4.3
|
||
|
SHELL
|
||
|
end
|
||
|
end
|