mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
9836578520
No new Perl code is being developed, so these tools are just taking up time and making migrations to newer platforms harder. There are only a few Perl tests remaining with full coverage so the coverage tool does not warn of loss of coverage in most cases. Remove both tools and associated libraries.
117 lines
5.6 KiB
Ruby
117 lines
5.6 KiB
Ruby
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 libxml-checker-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 AWS CLI' && date
|
|
apt-get install -y python-pip
|
|
pip install --upgrade awscli
|
|
|
|
# Configure AWS CLI
|
|
sudo -i -u vagrant aws configure set region us-east-1
|
|
sudo -i -u vagrant aws configure set aws_access_key_id accessKey1
|
|
sudo -i -u vagrant aws configure set aws_secret_access_key verySecretKey1
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
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
|