1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2026-05-22 10:15:16 +02:00
Files
pgbackrest/test/Vagrantfile
T

116 lines
5.7 KiB
Ruby
Raw Normal View History

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"
2017-06-09 17:51:41 -04:00
# Increase disk size if the vagrant-disksize plugin is available
# To install the plugin: vagrant plugin install vagrant-disksize
2019-12-17 21:47:19 -05:00
if Vagrant.has_plugin?('vagrant-disksize')
config.disksize.size = '64GB'
end
config.vm.provider :virtualbox do |vb|
2016-10-03 09:15:29 -04:00
vb.name = "pgbackrest-test"
end
# Provision the VM
config.vm.provision "shell", inline: <<-SHELL
#---------------------------------------------------------------------------------------------------------------------------
2016-10-03 09:15:29 -04:00
echo 'Build Begin' && date
# Suppress "dpkg-reconfigure: unable to re-open stdin: No file or directory" warning
export DEBIAN_FRONTEND=noninteractive
2017-03-14 22:05:17 -04:00
# 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
#---------------------------------------------------------------------------------------------------------------------------
2016-10-03 09:15:29 -04:00
echo 'Update Apt' && date
2016-05-26 14:03:32 -04:00
apt-get update
2016-10-03 09:15:29 -04:00
#---------------------------------------------------------------------------------------------------------------------------
echo 'Synchronize Date' && date
2017-03-14 22:05:17 -04:00
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
2019-10-08 15:27:17 -04:00
# Set time sync settings so builds don't fail with clock skew errors. If a build does fail with "clock skew detected",
# rerun the following at the command line.
#---------------------------------------------------------------------------------------------------------------------------
echo 'Time Sync Settings' && date
2018-05-18 11:57:32 -04:00
sudo /etc/init.d/virtualbox-guest-utils stop
2018-06-26 16:56:05 -04:00
sudo /usr/sbin/VBoxService --timesync-set-on-restore --timesync-interval 5000 --timesync-set-threshold 1
# Create /tmp/pgbackrest and give ownership to root so we know unit tests are not writing there
#---------------------------------------------------------------------------------------------------------------------------
echo 'Create /tmp/pgbackrest owned by root' && date
sudo mkdir -p /tmp/pgbackrest
sudo chown root:root /tmp/pgbackrest
sudo chmod 700 /tmp/pgbackrest
2018-11-02 08:37:27 -04:00
# 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
2019-07-05 16:55:17 -04:00
apt-get install -y libdbd-pg-perl libxml-checker-perl libyaml-libyaml-perl
#---------------------------------------------------------------------------------------------------------------------------
echo 'Install Build Tools' && date
2019-10-12 11:24:21 -04:00
apt-get install -y devscripts build-essential lintian git cloc txt2man debhelper libssl-dev zlib1g-dev libperl-dev \
libxml2-dev liblz4-dev liblz4-tool libpq-dev valgrind lcov autoconf-archive
2019-10-12 11:24:21 -04:00
#---------------------------------------------------------------------------------------------------------------------------
2016-10-03 09:15:29 -04:00
echo 'Install Docker' && date
2018-12-03 12:41:53 -05:00
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker vagrant
2016-05-26 14:03:32 -04:00
#---------------------------------------------------------------------------------------------------------------------------
echo 'Install Dev Utilities' && date
2016-06-12 09:00:16 -04:00
apt-get install -y vim htop
#---------------------------------------------------------------------------------------------------------------------------
echo '/tmp/pgbackrest owned by root so tests do not use it' && date
mkdir -p 700 /tmp/pgbackrest
#---------------------------------------------------------------------------------------------------------------------------
# echo 'Install TeX Live' && date
# Not installed by default since latex is only needed for releases and PDF development/testing
# apt-get install -y --no-install-recommends texlive-latex-base texlive-latex-extra texlive-fonts-recommended
# apt-get install -y texlive-font-utils
2016-06-12 09:00:16 -04:00
#---------------------------------------------------------------------------------------------------------------------------
2016-10-03 09:15:29 -04:00
echo 'Build VM Images' && date
sudo su - vagrant -c '/backrest/test/test.pl --vm-build'
2016-10-03 09:15:29 -04:00
#---------------------------------------------------------------------------------------------------------------------------
2016-10-03 09:15:29 -04:00
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