Vagrant.configure(2) do |config| config.vm.provider :virtualbox do |vb| vb.memory = 4096 vb.cpus = 8 end config.vm.box = "ubuntu/bionic64" config.vm.box_version = "20180719.0.0" # vagrant plugin install vagrant-disksize config.disksize.size = '64GB' config.vm.provider :virtualbox do |vb| vb.name = "pgbackrest-test" end # Provision the VM config.vm.provision "shell", inline: <<-SHELL #--------------------------------------------------------------------------------------------------------------------------- echo 'Build Begin' && date # Suppress "dpkg-reconfigure: unable to re-open stdin: No file or directory" warning export DEBIAN_FRONTEND=noninteractive # Assign a host name sed -i 's/^127\.0\.0\.1\t.*/127\.0\.0\.1\tlocalhost pgbackrest-test/' /etc/hosts hostnamectl set-hostname pgbackrest-test #--------------------------------------------------------------------------------------------------------------------------- echo 'Update Apt' && date apt-get update #--------------------------------------------------------------------------------------------------------------------------- echo 'Synchronize Date' && date apt-get install -y ntpdate ntpdate pool.ntp.org #--------------------------------------------------------------------------------------------------------------------------- echo 'Use Google DNS' && date echo 'supersede domain-name-servers 8.8.8.8;' >> /etc/dhcp/dhclient.conf /etc/init.d/networking restart # Set time sync settings so builds don't fail with clock drift errors #--------------------------------------------------------------------------------------------------------------------------- echo 'Time Sync Settings' && date sudo /etc/init.d/virtualbox-guest-utils stop sudo /usr/sbin/VBoxService --timesync-set-on-restore --timesync-interval 5000 --timesync-set-threshold 1 # Mount tmpfs at /home/vagrant/test for faster testing #--------------------------------------------------------------------------------------------------------------------------- echo 'Mount tmpfs' && date sudo -u vagrant mkdir -p -m 770 /home/vagrant/test echo 'tmpfs /home/vagrant/test tmpfs size=2560M 0 1' >> /etc/fstab mount -a #--------------------------------------------------------------------------------------------------------------------------- echo 'Install Perl Modules' && date apt-get install -y libdbd-pg-perl libio-socket-ssl-perl libxml-libxml-perl libxml-checker-perl libperl-critic-perl \ libdevel-nytprof-perl libyaml-libyaml-perl #--------------------------------------------------------------------------------------------------------------------------- echo 'Install Build Tools' && date apt-get install -y devscripts build-essential lintian git lcov cloc txt2man debhelper libssl-dev zlib1g-dev libperl-dev \ libxml2-dev liblz4-dev #--------------------------------------------------------------------------------------------------------------------------- echo 'Install Devel::Cover' && date dpkg -i /backrest/test/package/u18-libdevel-cover-perl_1.29-2_amd64.deb #--------------------------------------------------------------------------------------------------------------------------- echo 'Install Docker' && date curl -fsSL https://get.docker.com | sh sudo usermod -aG docker vagrant #--------------------------------------------------------------------------------------------------------------------------- echo 'Install Dev Utilities' && date apt-get install -y vim htop #--------------------------------------------------------------------------------------------------------------------------- echo 'Install TeX Live' && date apt-get install -y --no-install-recommends texlive-latex-base texlive-latex-extra texlive-fonts-recommended apt-get install -y texlive-font-utils #--------------------------------------------------------------------------------------------------------------------------- echo 'Create Postgres Group & pgBackRest User' && date adduser --uid=5001 --ingroup=vagrant --disabled-password --gecos "" pgbackrest #--------------------------------------------------------------------------------------------------------------------------- echo 'Build VM Images' && date rm -rf /backrest/test/.vagrant/docker/* rm -rf /backrest/test/.vagrant/libc/* rm -rf /backrest/test/.vagrant/package/* sudo su - vagrant -c '/backrest/test/test.pl --vm-build' #--------------------------------------------------------------------------------------------------------------------------- echo 'Build End' && date # Useful commands #--------------------------------------------------------------------------------------------------------------------------- # Force remove all containers: # docker rm -f $(docker ps -a -q) # Force remove all images: # docker rmi -f $(docker images -q) SHELL # Don't share the default vagrant folder config.vm.synced_folder ".", "/vagrant", disabled: true # Mount backrest path for testing config.vm.synced_folder "..", "/backrest" end