= Vagrant = <> * https://www.vagrantup.com == vagrantfile == * https://www.vagrantup.com/docs/vagrantfile/ === sample file for ubuntu xenial === {{{#!highlight ruby Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.network "forwarded_port", guest: 8080, host: 18080, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9990, host: 19990, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9000, host: 19000, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9001, host: 19001, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9002, host: 19002, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9003, host: 19003, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 4200, host: 14200, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 5672, host: 15672, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 15672, host: 25672, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 8000, host: 18000, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 5000, host: 15000, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 1433, host: 11433, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9042, host: 19042, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 27017, host: 37017, host_ip: "127.0.0.1" config.vm.provider "virtualbox" do |vb| vb.gui = false vb.memory = "2048" vb.name = "UbuntuVM" file_to_disk = "dockerdata.vmdk" unless File.exist?(file_to_disk) vb.customize [ "createmedium", "disk", "--filename", file_to_disk, "--format", "vmdk", "--size", 1024 * 10 ] end vb.customize [ "storageattach", "UbuntuVM" , "--storagectl", "SCSI", "--port", "2", "--device", "0", "--type", "hdd", "--medium", file_to_disk] end config.vm.provision "shell", inline: <<-SHELL apt-get update apt-get install apt-transport-https ca-certificates curl software-properties-common 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 openjdk-8-jdk maven nodejs npm docker-ce -y usermod -a vagrant -G docker dd if=/dev/zero of=/swapfile1 bs=1024 count=2097152 chown root:root /swapfile1 chmod 0600 /swapfile1 mkswap /swapfile1 swapon /swapfile1 echo "/swapfile1 none swap sw 0 0" >> /etc/fstab # nodejs stuff apt-get purge nodejs npm curl -sL https://deb.nodesource.com/setup_9.x | bash - apt-get install -y nodejs # prepare new disk for docker data ... echo -e "n\np\n1\n\n\nw" | fdisk /dev/sdc mkfs.ext4 /dev/sdc1 mkdir -p /mnt/dockerdata mount /dev/sdc1 /mnt/dockerdata/ echo "/dev/sdc1 /mnt/dockerdata ext4 defaults 0 0 " >> /etc/fstab echo -e "{\n \"data-root\": \"/mnt/dockerdata\"\n}" > /etc/docker/daemon.json SHELL end }}} == vagrant init == {{{ vagrant init [name [url]] This initializes the current directory to be a Vagrant environment by creating an initial Vagrantfile if one does not already exist. If a first argument is given, it will prepopulate the config.vm.box setting in the created Vagrantfile. If a second argument is given, it will prepopulate the config.vm.box_url setting in the created Vagrantfile. Create a base Vagrantfile: $ vagrant init hashicorp/precise64 Create a minimal Vagrantfile (no comments or helpers): $ vagrant init -m hashicorp/precise64 Create a Vagrantfile with the specific box, from the specific box URL: $ vagrant init my-company-box https://boxes.company.com/my-company.box }}} == vagrant up == {{{ vagrant up [name|id] This command creates and configures guest machines according to your Vagrantfile. }}} == centos 7 == {{{ # https://app.vagrantup.com/centos/boxes/7 vagrant init centos/7 # customize the Vagrantfile vagrant up }}} == Slackbuild install vagrant Slack 14.2 == {{{#!highlight bash cd /tmp wget https://slackbuilds.org/slackbuilds/14.2/system/vagrant.tar.gz tar xvzf vagrant.tar.gz cd vagrant wget https://releases.hashicorp.com/vagrant/2.2.4/vagrant_2.2.4_i686.rpm ./vagrant.SlackBuild installpkg /tmp/vagrant-2.2.4-i586-1_SBo.tgz vagrant -v }}} == Slackbuild install vagrant Slack64 15.0 == {{{#!highlight bash cd /tmp/ wget https://slackbuilds.org/slackbuilds/15.0/system/vagrant.tar.gz tar xvzf vagrant.tar.gz cd vagrant wget https://releases.hashicorp.com/vagrant/2.2.15/vagrant_2.2.15_x86_64.rpm ./vagrant.SlackBuild installpkg /tmp/vagrant-2.2.15-x86_64-1_SBo.tgz vagrant -v }}} == Slackbuild install vagrant 2.4.1-1 Slack64 15.0 == {{{#!highlight sh # update to vagrant 2.4.1-1 cd /tmp/ wget https://slackbuilds.org/slackbuilds/15.0/system/vagrant.tar.gz tar xvzf vagrant.tar.gz cd vagrant wget https://releases.hashicorp.com/vagrant/2.4.1/vagrant-2.4.1-1.x86_64.rpm nano vagrant.SlackBuild # VERSION=${VERSION:-2.4.1-1} # rpm2cpio < $CWD/${PRGNAM}-${VERSION}.$SRCARCH.rpm | cpio -ivmd ./vagrant.SlackBuild sudo /sbin/removepkg vagrant-2.2.15-x86_64-1_SBo sudo /sbin/installpkg /tmp/vagrant-2.4.1-1-x86_64-1_SBo.tgz vagrant -v # go to folder with Vagrantfile vagrant up }}} == Vagrant file ubuntu maven docker java8 == * cat Vagrantfile | grep -v "^.*#" {{{#!highlight ruby Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.network "forwarded_port", guest: 8080, host: 18080, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9990, host: 19990, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9000, host: 19000, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9001, host: 19001, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9002, host: 19002, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9003, host: 19003, host_ip: "127.0.0.1" config.vm.provider "virtualbox" do |vb| vb.gui = false vb.memory = "2048" end config.vm.provision "shell", inline: <<-SHELL apt-get update apt-get install docker-ce apt-get install openjdk-8-jdk apt-get install maven dd if=/dev/zero of=/swapfile1 bs=1024 count=2097152 chown root:root /swapfile1 chmod 0600 /swapfile1 mkswap /swapfile1 swapon /swapfile1 echo "/swapfile1 none swap sw 0 0" >> /etc/fstab SHELL end }}} == SandboxVM nodejs jdk8 docker ubuntu == {{{#!highlight ruby Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.network "forwarded_port", guest: 8080, host: 18080, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9990, host: 19990, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9000, host: 19000, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9001, host: 19001, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9002, host: 19002, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9003, host: 19003, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 4200, host: 14200, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 5672, host: 15672, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 15672, host: 25672, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 8000, host: 18000, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 5000, host: 15000, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 1433, host: 11433, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 9042, host: 19042, host_ip: "127.0.0.1" config.vm.network "forwarded_port", guest: 27017, host: 37017, host_ip: "127.0.0.1" config.vm.provider "virtualbox" do |vb| vb.gui = false vb.memory = "2048" vb.name = "SandboxVM" file_to_disk = "dockerdata.vmdk" unless File.exist?(file_to_disk) vb.customize [ "createmedium", "disk", "--filename", file_to_disk, "--format", "vmdk", "--size", 1024 * 10 ] end vb.customize [ "storageattach", "SandboxVM" , "--storagectl", "SCSI", "--port", "2",, "--device", "0", "--type", "hdd", "--medium", file_to_disk] end config.vm.provision "shell", inline: <<-SHELL apt-get update apt-get install apt-transport-https ca-certificates curl software-properties-common 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 openjdk-8-jdk maven -y apt-get install nodejs npm -y apt-get install docker-ce -y usermod -a vagrant -G docker dd if=/dev/zero of=/swapfile1 bs=1024 count=2097152 chown root:root /swapfile1 chmod 0600 /swapfile1 mkswap /swapfile1 swapon /swapfile1 echo "/swapfile1 none swap sw 0 0" >> /etc/fstab apt-get purge nodejs npm curl -sL https://deb.nodesource.com/setup_9.x | bash - apt-get install -y nodejs echo -e "n\np\n1\n\n\nw" | fdisk /dev/sdc mkfs.ext4 /dev/sdc1 mkdir -p /mnt/dockerdata mount /dev/sdc1 /mnt/dockerdata/ echo "/dev/sdc1 /mnt/dockerdata ext4 defaults 0 0 " >> /etc/fstab echo -e "{\n \"data-root\": \"/mnt/dockerdata\"\n}" > /etc/docker/daemon.json SHELL end }}} == Install vagrant and VirtualBox on debian bullseye - yoga 300 == {{{#!highlight bash sudo apt update sudo apt upgrade cd Downloads/ wget https://download.virtualbox.org/virtualbox/6.1.34/virtualbox-6.1_6.1.34-150636.1~Debian~bullseye_amd64.deb wget https://releases.hashicorp.com/vagrant/2.2.19/vagrant_2.2.19_x86_64.deb # install dependencies sudo apt install -y libqt5opengl5 linux-headers-amd64 linux-source sudo apt install dkms build-essential linux-image-5.10.0-13-amd64 sudo apt autoremove # remove non used linux kernel images sudo apt remove linux-image-4.19.0-6-amd64 sudo apt remove linux-image-5.17.0-1-amd64 # install packages sudo dpkg -i virtualbox-6.1_6.1.34-150636.1~Debian~bullseye_amd64.deb sudo dpkg -i vagrant_2.2.19_x86_64.deb virtualbox & vagrant --version }}} === Vagrantfile === * vagrant up * vagrant ssh {{{#!highlight ruby # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "debian/bullseye64" config.vm.provider "virtualbox" do |vb| vb.customize ["setextradata", :id, "CustomVideoMode1", "1366x768x32"] end config.vm.provision "shell", inline: <<-SHELL apt update apt upgrade apt install -y docker.io openjdk-17-jdk maven gradle apt install -y xorg lxterminal wmaker lightdm ibus usermod -a vagrant -G docker service lightdm start SHELL end }}}