Vagrantfile 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. SHELL
  7. config.vm.provision "record install", type: "shell", inline: <<-SHELL
  8. gpg --recv-keys "6D5B EF9A DD20 7580 5747 B70F 9F88 FB52 FAF7 B393"
  9. asciinema rec -c 'expect /vagrant/install.tcl' --overwrite /vagrant/install.json < /dev/null
  10. SHELL
  11. config.vm.provision "record basic usage", type: "shell", inline: <<-SHELL
  12. # `rm` below allows quick re-exec via:
  13. # vagrant vagrant provision --provision-with "record basic usage"
  14. # this is useful when testing changes
  15. rm -r /media/backup/borgdemo || true
  16. rm -r ~/.ssh/ || true
  17. deluser --remove-home borgdemo || true
  18. # In case we have skipped "record install"
  19. if [ ! -e /usr/local/bin/borg ] ; then
  20. wget https://github.com/borgbackup/borg/releases/download/1.1.0b6/borg-linux64
  21. install --owner root --group root --mode 755 borg-linux64 /usr/local/bin/borg
  22. fi
  23. mkdir -p /media/backup/borgdemo
  24. adduser --disabled-password borgdemo
  25. echo '127.0.0.1 remoteserver.example' >> /etc/hosts
  26. ssh-keygen -f ~/.ssh/id_rsa -N ''
  27. ssh-keyscan remoteserver.example > ~/.ssh/known_hosts
  28. runuser -u borgdemo mkdir ~borgdemo/.ssh
  29. runuser -u borgdemo tee ~borgdemo/.ssh/authorized_keys < ~/.ssh/id_rsa.pub
  30. asciinema rec -c 'expect /vagrant/basic.tcl' --overwrite /vagrant/basic.json < /dev/null
  31. SHELL
  32. config.vm.provision "record advanced usage", type: "shell", inline: <<-SHELL
  33. rm -r /media/backup/borgdemo || true
  34. # In case we have skipped "record install"
  35. if [ ! -e /usr/local/bin/borg ] ; then
  36. wget https://github.com/borgbackup/borg/releases/download/1.1.0b6/borg-linux64
  37. install --owner root --group root --mode 755 borg-linux64 /usr/local/bin/borg
  38. fi
  39. mkdir -p /media/backup/borgdemo
  40. mkdir -p Wallpaper
  41. mkdir -p ~/Downloads/big
  42. dd if=/dev/zero of=loopbackfile.img bs=100M count=4
  43. losetup /dev/loop0 loopbackfile.img
  44. # TODO: emulate basic.tcl
  45. export BORG_PASSPHRASE='1234'
  46. borg init --encryption=repokey /media/backup/borgdemo
  47. unset BORG_PASSPHRASE
  48. asciinema rec -c 'expect /vagrant/advanced.tcl' --overwrite /vagrant/advanced.json < /dev/null
  49. SHELL
  50. end