forked from ethernity-cloud/mvp-pox-node
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVagrantfile
72 lines (69 loc) · 3.54 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
#
# Copyright (C) 2018, 2019 Ethernity HODL UG
#
# This file is part of ETHERNITY NODE.
#
# ETHERNITY SC is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
Vagrant.configure("2") do |config|
interface = `ip a | grep '2:' | head -1 | awk '{print $2}' | awk -F ':' '{print $1}'`
config.vm.define :etnyvm1 do |etnyvm1|
etnyvm1.vm.box = "generic/ubuntu1804"
etnyvm1.vm.provider :libvirt do |domain|
domain.memory = 2048
domain.cpus = 2
domain.cpu_mode = 'host-passthrough'
domain.nested = true
domain.kvm_hidden = false
domain.machine_virtual_size = 40
domain.volume_cache = 'none'
domain.qemuargs :value => '-cpu'
domain.qemuargs :value => 'host,+sgx'
domain.qemuargs :value => '-object'
domain.qemuargs :value => 'memory-backend-epc,id=mem1,size=64M,prealloc'
domain.qemuargs :value => '-sgx-epc'
domain.qemuargs :value => 'id=epc1,memdev=mem1'
end
etnyvm1.vm.network :public_network,
:dev => interface.strip!,
:mode => 'vepa',
:type => 'direct'
etnyvm1.vm.provision "file", source: "./ubuntu/etny-node-provision-docker.sh", destination: "~/etny/node/etny-node-provision-docker.sh"
etnyvm1.vm.provision "file", source: "./ubuntu/etny-node-provision-sgx.sh", destination: "~/etny/node/etny-node-provision-sgx.sh"
etnyvm1.vm.provision "file", source: "./ubuntu/etny-node-provision-python.sh", destination: "~/etny/node/etny-node-provision-python.sh"
etnyvm1.vm.provision "file", source: "./ubuntu/etny-node-provision-ipfs.sh", destination: "~/etny/node/etny-node-provision-ipfs.sh"
etnyvm1.vm.provision "file", source: "./ubuntu/etny-node-provision-etny.sh", destination: "~/etny/node/etny-node-provision-etny.sh"
etnyvm1.vm.provision "file", source: "./ubuntu/etny-node-start.sh", destination: "~/etny/node/etny-node-start.sh"
etnyvm1.vm.provision "file", source: "./ubuntu/etc/systemd/system/etny-node.service", destination: "~/etny/node/etny-node.service"
etnyvm1.vm.provision "file", source: "./config", destination: "~/etny/node/config"
etnyvm1.vm.provision "shell",
inline: "/bin/bash /home/vagrant/etny/node/etny-node-provision-docker.sh"
etnyvm1.vm.provision :reload
etnyvm1.vm.provision "shell",
inline: "/bin/bash /home/vagrant/etny/node/etny-node-provision-sgx.sh"
etnyvm1.vm.provision :reload
etnyvm1.vm.provision "shell",
inline: "/bin/bash /home/vagrant/etny/node/etny-node-provision-python.sh"
etnyvm1.vm.provision "shell",
inline: "/bin/bash /home/vagrant/etny/node/etny-node-provision-ipfs.sh"
etnyvm1.vm.provision "shell",
inline: "/bin/bash /home/vagrant/etny/node/etny-node-provision-etny.sh"
etnyvm1.vm.provision "shell",
inline: "/bin/mv /home/vagrant/etny/node/etny-node.service /etc/systemd/system/"
etnyvm1.vm.provision "shell",
inline: "/bin/systemctl start etny-node.service"
etnyvm1.vm.provision "shell",
inline: "/bin/systemctl enable etny-node.service"
end
end