Vagrantfile 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. Vagrant.configure("2") do |config|
  2. config.vm.box = "debian/bullseye64"
  3. config.vm.provision "install dependencies", type: "shell", inline: <<-SHELL
  4. apt-get update
  5. apt-get install -y wget expect gpg asciinema ssh adduser fuse
  6. mkdir -p /wallpaper
  7. wget \
  8. --user-agent="borgbackup demo screencast" \
  9. --input-file=/vagrant/sample-wallpapers.txt \
  10. --directory-prefix=/wallpaper
  11. SHELL
  12. config.vm.provision "record install", type: "shell", inline: <<-SHELL
  13. gpg --recv-keys "6D5B EF9A DD20 7580 5747 B70F 9F88 FB52 FAF7 B393"
  14. asciinema rec -c 'expect /vagrant/install.tcl' --overwrite /vagrant/install.json < /dev/null
  15. SHELL
  16. config.vm.provision "record basic usage", type: "shell", inline: <<-SHELL
  17. # `rm` below allows quick re-exec via:
  18. # vagrant provision --provision-with "record basic usage"
  19. # this is useful when testing changes
  20. rm -r /media/backup/borgdemo || true
  21. rm -r ~/.ssh/ || true
  22. rm -r Wallpaper || true
  23. deluser --remove-home borgdemo || true
  24. # In case we have skipped "record install"
  25. if [ ! -e /usr/local/bin/borg ] ; then
  26. wget https://github.com/borgbackup/borg/releases/download/1.2.1/borg-linux64
  27. install --owner root --group root --mode 755 borg-linux64 /usr/local/bin/borg
  28. fi
  29. mkdir -p /media/backup/borgdemo
  30. mkdir Wallpaper
  31. cp -r /wallpaper Wallpaper/bigcollection
  32. cp /wallpaper/Trapper_cabin.jpg Wallpaper/deer.jpg
  33. adduser --disabled-password borgdemo
  34. echo '127.0.0.1 remoteserver.example' >> /etc/hosts
  35. ssh-keygen -f ~/.ssh/id_rsa -N ''
  36. ssh-keyscan remoteserver.example > ~/.ssh/known_hosts
  37. runuser -u borgdemo mkdir ~borgdemo/.ssh
  38. runuser -u borgdemo tee ~borgdemo/.ssh/authorized_keys < ~/.ssh/id_rsa.pub
  39. asciinema rec -c 'expect /vagrant/basic.tcl' --overwrite /vagrant/basic.json < /dev/null
  40. SHELL
  41. config.vm.provision "record advanced usage", type: "shell", inline: <<-SHELL
  42. rm -r /media/backup/borgdemo || true
  43. rm -r Wallpaper || true
  44. # In case we have skipped "record install"
  45. if [ ! -e /usr/local/bin/borg ] ; then
  46. wget https://github.com/borgbackup/borg/releases/download/1.2.1/borg-linux64
  47. install --owner root --group root --mode 755 borg-linux64 /usr/local/bin/borg
  48. fi
  49. mkdir -p /media/backup/borgdemo
  50. mkdir Wallpaper
  51. cp -r /wallpaper Wallpaper/bigcollection
  52. cp /wallpaper/Trapper_cabin.jpg Wallpaper/deer.jpg
  53. mkdir -p ~/Downloads/big
  54. dd if=/dev/zero of=loopbackfile.img bs=100M count=4
  55. losetup /dev/loop0 loopbackfile.img
  56. # Make it look as if the adv. usage screencast was recorded after basic usage
  57. export BORG_PASSPHRASE='1234'
  58. borg init --encryption=repokey /media/backup/borgdemo
  59. borg create --compression lz4 /media/backup/borgdemo::backup1 Wallpaper
  60. echo "new nice file" > Wallpaper/newfile.txt
  61. borg create --compression lz4 /media/backup/borgdemo::backup2 Wallpaper
  62. mv Wallpaper/bigcollection Wallpaper/bigcollection_NEW
  63. borg create --compression lz4 /media/backup/borgdemo::backup3 Wallpaper
  64. unset BORG_PASSPHRASE
  65. asciinema rec -c 'expect /vagrant/advanced.tcl' --overwrite /vagrant/advanced.json < /dev/null
  66. SHELL
  67. end