forked from nordic-institute/X-Road
/
Vagrantfile
87 lines (80 loc) · 3.01 KB
/
Vagrantfile
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
76
77
78
79
80
81
82
83
84
85
86
87
# -*- mode: ruby -*-
# vi: set ft=ruby :
file_to_disk = './tmp/large_disk.vdi'
Vagrant.configure('2') do |config|
config.vm.box = 'ubuntu/xenial64'
config.vm.network 'private_network', :ip => '10.122.151.3', :adapter => 2
config.vm.synced_folder '.', '/vagrant', disabled: true
config.vm.synced_folder '../', '/hostX-Road'
config.vm.provider 'virtualbox' do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = false
vb.name = "xroad_dev"
# Minimun what development environment will need.
# Customize the amount of memory on the VM:
vb.memory = '8192'
unless File.exist?(file_to_disk)
vb.customize [
'createhd',
'--filename', file_to_disk,
'--size', 20 * 1024
]
vb.customize [
'storageattach', :id,
'--storagectl', 'SCSI',
'--port', 2, '--device', 0,
'--type', 'hdd', '--medium',
file_to_disk
]
end
end
config.vm.provision 'mount LXD storage', type: 'shell', inline: <<-SHELL
DISK=$(readlink -f /dev/disk/by-path/*-scsi-0:0:2:0)
if [ ! -b "${DISK}" ]; then
echo "$DISK does not exist"
exit 1
fi
if [ ! -b "${DISK}1" ]; then
echo "Creating ${DISK}1..."
parted $DISK -s -a optimal mklabel gpt mkpart primary ext4 0% 100%
sync; partprobe; sleep 1
while ! mkfs.ext4 ${DISK}1; do
echo "Trying again..."
sleep 3
partprobe
done
blkid -g
echo -e "UUID=$(blkid -s UUID -o value ${DISK}1)\t/var/lib/lxd\text4\tdefaults\t0 0" >>/etc/fstab
systemctl stop lxd.socket
mount -a
systemctl start lxd.socket
else
echo "Device ${DISK}1 exists, skipping"
fi
SHELL
config.vm.provision 'LXD config', type: 'shell', inline: <<-SHELL
echo "set lxd/bridge-ipv4-address 10.122.150.1" | debconf-communicate
echo "set lxd/bridge-ipv4-dhcp-leases 252" | debconf-communicate
echo "set lxd/bridge-ipv4-netmask 24" | debconf-communicate
echo "set lxd/bridge-ipv4 true" | debconf-communicate
echo "set lxd/bridge-ipv4-nat true" | debconf-communicate
echo "set lxd/bridge-ipv4-dhcp-first 10.122.150.2" | debconf-communicate
echo "set lxd/bridge-ipv4-dhcp-last 10.122.150.254" | debconf-communicate
echo "set lxd/setup-bridge true" | debconf-communicate
echo "set lxd/bridge-name lxdbr0" | debconf-communicate
rm /etc/default/lxd-bridge
dpkg-reconfigure -p medium lxd -fnoninteractive
SHELL
config.vm.provision 'config', type: 'shell', inline: <<-SHELL
apt-add-repository ppa:ansible/ansible
apt-get -qqy update
apt-get -qqy install virtualbox-guest-utils linux-virtual lxd git software-properties-common ansible docker.io python-docker
addgroup vagrant lxd
addgroup vagrant docker
lxd init --auto --storage-backend=dir
echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf
sysctl -p
sudo sed -i'' -r 's/(AcceptEnv*)/#\\1/' /etc/ssh/sshd_config
systemctl reload sshd
SHELL
end