mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-02-11 13:53:03 +02:00
Update RHEL repos that have changed upstream. Remove PostgreSQL 9.3 since the RHEL6/7 packages have disappeared. Remove PostgreSQL versions from U12 that are still getting minor updates so the container does not need to be rebuilt. LZ4 is included for future development, but this seems like a good time to add it to the containers.
128 lines
6.2 KiB
Ruby
128 lines
6.2 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 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 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
|
|
|
|
# Create test alias for AWS CLI
|
|
echo '' >> /home/vagrant/.profile
|
|
echo '# Test alias for AWS CLI' >> /home/vagrant/.profile
|
|
echo 'alias s3-test="export PYTHONWARNINGS=ignore && aws s3 --endpoint-url=https://172.17.0.2 --no-verify-ssl"' \
|
|
>> /home/vagrant/.profile
|
|
|
|
#---------------------------------------------------------------------------------------------------------------------------
|
|
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
|