Vagrantfile 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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
  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. wget https://github.com/borgbackup/borg/releases/download/1.1.0b6/borg-linux64
  20. install --owner root --group root --mode 755 borg-linux64 /usr/local/bin/borg
  21. mkdir -p /media/backup/borgdemo
  22. adduser --disabled-password borgdemo
  23. echo '127.0.0.1 remoteserver.example' >> /etc/hosts
  24. ssh-keygen -f ~/.ssh/id_rsa -N ''
  25. ssh-keyscan remoteserver.example > ~/.ssh/known_hosts
  26. runuser -u borgdemo mkdir ~borgdemo/.ssh
  27. runuser -u borgdemo tee ~borgdemo/.ssh/authorized_keys < ~/.ssh/id_rsa.pub
  28. asciinema rec -c 'expect /vagrant/basic.tcl' --overwrite /vagrant/basic.json
  29. SHELL
  30. config.vm.provision "record advanced usage", type: "shell", inline: <<-SHELL
  31. rm -r /media/backup/borgdemo || true
  32. # In case we have skipped "record install"
  33. wget https://github.com/borgbackup/borg/releases/download/1.1.0b6/borg-linux64
  34. install --owner root --group root --mode 755 borg-linux64 /usr/local/bin/borg
  35. mkdir -p /media/backup/borgdemo
  36. mkdir -p Wallpaper
  37. mkdir -p ~/Downloads/big
  38. dd if=/dev/zero of=loopbackfile.img bs=100M count=4
  39. losetup /dev/loop0 loopbackfile.img
  40. # TODO: emulate basic.tcl
  41. export BORG_PASSPHRASE='1234'
  42. borg init --encryption=repokey /media/backup/borgdemo
  43. unset BORG_PASSPHRASE
  44. asciinema rec -c 'expect /vagrant/advanced.tcl' --overwrite /vagrant/advanced.json
  45. SHELL
  46. end