File: Vagrantfile

package info (click to toggle)
borgbackup 1.4.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 15,732 kB
  • sloc: python: 26,637; pascal: 3,245; ansic: 2,597; sh: 151; makefile: 137; tcl: 94
file content (75 lines) | stat: -rw-r--r-- 3,223 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Vagrant.configure("2") do |config|
  config.vm.box = "debian/bullseye64"
  config.vm.provision "install dependencies", type: "shell", inline: <<-SHELL
    apt-get update
    apt-get install -y wget expect gpg asciinema ssh adduser fuse
    mkdir -p /wallpaper
    wget \
        --user-agent="borgbackup demo screencast" \
        --input-file=/vagrant/sample-wallpapers.txt \
        --directory-prefix=/wallpaper
  SHELL
  config.vm.provision "record install", type: "shell", inline: <<-SHELL
  	gpg --recv-keys "6D5B EF9A DD20 7580 5747 B70F 9F88 FB52 FAF7 B393"
    asciinema rec -c 'expect /vagrant/install.tcl' --overwrite /vagrant/install.json < /dev/null
  SHELL
  config.vm.provision "record basic usage", type: "shell", inline: <<-SHELL
    # `rm` below allows quick re-exec via:
    # vagrant vagrant provision --provision-with "record basic usage"
    # this is useful when testing changes
    rm -r /media/backup/borgdemo || true
    rm -r ~/.ssh/ || true
    rm -r Wallpaper || true
    deluser --remove-home borgdemo || true

    # In case we have skipped "record install"
    if [ ! -e /usr/local/bin/borg ] ; then
      wget https://github.com/borgbackup/borg/releases/download/1.2.1/borg-linux64
      install --owner root --group root --mode 755 borg-linux64 /usr/local/bin/borg
    fi

    mkdir -p /media/backup/borgdemo
    mkdir Wallpaper
    cp -r /wallpaper Wallpaper/bigcollection
    cp /wallpaper/Trapper_cabin.jpg Wallpaper/deer.jpg

    adduser --disabled-password borgdemo
    echo '127.0.0.1 remoteserver.example' >> /etc/hosts
    ssh-keygen -f ~/.ssh/id_rsa -N ''
    ssh-keyscan remoteserver.example > ~/.ssh/known_hosts
    runuser -u borgdemo mkdir ~borgdemo/.ssh
    runuser -u borgdemo tee ~borgdemo/.ssh/authorized_keys < ~/.ssh/id_rsa.pub

    asciinema rec -c 'expect /vagrant/basic.tcl' --overwrite /vagrant/basic.json < /dev/null
  SHELL
  config.vm.provision "record advanced usage", type: "shell", inline: <<-SHELL
    rm -r /media/backup/borgdemo || true
    rm -r Wallpaper || true

    # In case we have skipped "record install"
    if [ ! -e /usr/local/bin/borg ] ; then
      wget https://github.com/borgbackup/borg/releases/download/1.2.1/borg-linux64
      install --owner root --group root --mode 755 borg-linux64 /usr/local/bin/borg
    fi

    mkdir -p /media/backup/borgdemo
    mkdir Wallpaper
    cp -r /wallpaper Wallpaper/bigcollection
    cp /wallpaper/Trapper_cabin.jpg Wallpaper/deer.jpg
    mkdir -p ~/Downloads/big
    dd if=/dev/zero of=loopbackfile.img bs=100M count=4
    losetup /dev/loop0 loopbackfile.img

	# Make it look as if the adv. usage screencast was recorded after basic usage
    export BORG_PASSPHRASE='1234'
    borg init --encryption=repokey /media/backup/borgdemo
    borg create --compression lz4 /media/backup/borgdemo::backup1 Wallpaper
    echo "new nice file" > Wallpaper/newfile.txt
    borg create --compression lz4 /media/backup/borgdemo::backup2 Wallpaper
    mv Wallpaper/bigcollection Wallpaper/bigcollection_NEW
    borg create --compression lz4 /media/backup/borgdemo::backup3 Wallpaper
    unset BORG_PASSPHRASE

    asciinema rec -c 'expect /vagrant/advanced.tcl' --overwrite /vagrant/advanced.json < /dev/null
  SHELL
end