Skip to content
Snippets Groups Projects
Select Git revision
  • 61d8d9e0e35dc9759ec93b517b0a67df1c3506d3
  • master default protected
  • miniweb
  • stretch
  • stable
  • version/0.9.x
  • fix_0.9_ci_deploy
  • clean_vcsrepo
  • develop
  • citest
  • gitsubrepo
  • 0.8.x
  • subtree
  • citest_jessie
  • 0.10.0
  • 0.9.0
  • 0.9.0rc1
  • 0.8.2
  • 0.8.1
  • 0.8.0
  • 0.8.0rc1
  • 0.7.1
  • 0.7.0
  • 0.7.0rc2
  • 0.7.0rc1
  • 0.6.0
  • 0.6.0rc3
  • 0.6.0rc2
  • 0.6.0rc1
  • 0.5.5
  • 0.5.4.1
  • 0.5.4
  • 0.5.3
  • 0.5.2
34 results

backend.rb

  • Vagrantfile 4.02 KiB
    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    ENV["LC_ALL"] = "en_US.UTF-8"
    
    base_box = "debian/testing64"
    
    empty_disk = '.vagrant/tmp/empty.vdi'
    lvm_disk = '.vagrant/tmp/lvm.vdi'
    lukspart_disk = '.vagrant/tmp/lukspart.vdi'
    luksdev_disk = '.vagrant/tmp/luksdev.vdi'
    
    Vagrant.configure("2") do |config|
    
      config.vm.define "remote" do |remote|
        remote.vm.box = base_box
        remote.vm.hostname = "bntest1"
        remote.vm.network "private_network", ip: "192.168.181.5"
        remote.vm.provision "shell", inline: <<-SHELL
          export DEBIAN_FRONTEND=noninteractive
          echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
          locale-gen
          apt-get update
          apt-get install -y borgbackup duplicity rdiff-backup restic rsync
          sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
          echo "Port 22" >> /etc/ssh/sshd_config
          echo "Port 7722" >> /etc/ssh/sshd_config
          systemctl reload sshd
          echo -e "vagrant\nvagrant" | passwd vagrant
          chown vagrant: /var/backups
          wget -q https://github.com/restic/rest-server/releases/download/v0.10.0/rest-server_0.10.0_linux_amd64.tar.gz -O - | tar -xz -C /usr/local/bin --strip-components=1
        SHELL
      end
    
      config.vm.define "local", primary: true do |local|
        local.vm.box = base_box
        local.vm.hostname = "bntest0"
        local.vm.network "private_network", ip: "192.168.181.4"
        local.vm.provision "shell", inline: <<-SHELL
          export DEBIAN_FRONTEND=noninteractive
          echo "root: vagrant" >> /etc/aliases
          echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
          locale-gen
          apt-get update
          apt-get install -y automake make dialog sshpass
          BUILDSCRIPT="/usr/local/bin/build-backupninja.sh"
          echo "#!/bin/sh" >> $BUILDSCRIPT
          echo "cd /vagrant" >> $BUILDSCRIPT
          echo "make clean" >> $BUILDSCRIPT
          echo "./autogen.sh" >> $BUILDSCRIPT
          echo "./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib --libexecdir=/usr/lib" >> $BUILDSCRIPT
          echo "make" >> $BUILDSCRIPT
          echo "sudo make install" >> $BUILDSCRIPT
          chmod +x $BUILDSCRIPT
          $BUILDSCRIPT
          mkdir -p /root/.ssh
          yes y | ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ''
          echo "StrictHostKeyChecking accept-new" >> /root/.ssh/config
          echo "192.168.181.5 bntest1" >> /etc/hosts
          sshpass -p vagrant scp /root/.ssh/id_ed25519.pub vagrant@bntest1:/tmp/bntest.pub
          sshpass -p vagrant ssh vagrant@bntest1 "cat /tmp/bntest.pub >> /home/vagrant/.ssh/authorized_keys"
          sshpass -p vagrant ssh vagrant@bntest1 "chmod 400 /home/vagrant/.ssh/authorized_keys"
          ssh vagrant@bntest1 "sudo sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config"
          ssh vagrant@bntest1 "sudo systemctl reload sshd"
        SHELL
    
        local.vm.provider :virtualbox do |vb|
          unless File.exist?(empty_disk)
            vb.customize ['createhd', '--filename', empty_disk, '--size', 100 ]
          end
          unless File.exist?(empty_disk)
            vb.customize ['createhd', '--filename', lvm_disk, '--size', 100 ]
          end
          unless File.exist?(lukspart_disk)
            vb.customize ['createhd', '--filename', lukspart_disk, '--size', 100 ]
          end
          unless File.exist?(luksdev_disk)
            vb.customize ['createhd', '--filename', luksdev_disk, '--size', 100 ]
          end
          vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', empty_disk]
          vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 2, '--device', 0, '--type', 'hdd', '--medium', lvm_disk]
          vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 3, '--device', 0, '--type', 'hdd', '--medium', lukspart_disk]
          vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 4, '--device', 0, '--type', 'hdd', '--medium', luksdev_disk]
        end
      end
    
      config.vm.synced_folder ".", "/vagrant", type: "rsync",
        rsync__exclude: ".git/",
        rsync__args: ["--recursive", "--delete"]
    
    end