vagrant-zone 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Vagrantfile +22 -8
- data/lib/vagrant-zone/action.rb +2 -3
- data/lib/vagrant-zone/action/create.rb +1 -0
- data/lib/vagrant-zone/action/destroy.rb +1 -0
- data/lib/vagrant-zone/action/setup.rb +1 -1
- data/lib/vagrant-zone/driver.rb +62 -6
- data/lib/vagrant-zone/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdac02c4e9c3104f07c823aa4171bf31098eeba3f88180d5902ae7a384c7d166
|
4
|
+
data.tar.gz: 864c444150175f3f0cf18230dd3bce3b5f3ef2c6ba5ea0ba2fe80870c444006b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e74f6ab86b9cced168d8c057b1779f29c33e7e7927fc4755072d3b83f61bfcbccb067ca1dc12b67d23e9e759c0eedeaf7b9200a5896a4de2046bff9857f39cf3
|
7
|
+
data.tar.gz: 7badb35c222ff214926e76e0ad120b0859a8295cca95aad09b98de8214e8c3797abc50a13941a90d8149a4a1f258b4f543cd6fb32c260878a65645b0b87ad829
|
data/Vagrantfile
CHANGED
@@ -1,4 +1,17 @@
|
|
1
1
|
Vagrant.configure("2") do |config|
|
2
|
+
config.vm.define :freebsd do |freebsd|
|
3
|
+
freebsd.vm.box = 'freebsd'
|
4
|
+
|
5
|
+
freebsd.vm.network "public_network",
|
6
|
+
ip: "192.168.122.30", bridge: "e1000g0", auto_config: false, :netmask => "255.255.255.0", gateway: "192.168.122.1"
|
7
|
+
|
8
|
+
freebsd.vm.provider :zone do |vm|
|
9
|
+
vm.brand = 'bhyve'
|
10
|
+
vm.zonepath = '/rpool/freebsd'
|
11
|
+
vm.memory = '512M'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
2
15
|
config.vm.define :debian do |debian|
|
3
16
|
debian.vm.box = 'debian.zss'
|
4
17
|
debian.vm.network "public_network",
|
@@ -21,17 +34,18 @@ Vagrant.configure("2") do |config|
|
|
21
34
|
end
|
22
35
|
|
23
36
|
config.vm.define :centos do |centos|
|
24
|
-
centos.vm.box = '
|
37
|
+
centos.vm.box = 'centos.zss'
|
25
38
|
centos.vm.network "public_network",
|
26
39
|
ip: "192.168.122.29", bridge: "e1000g0", auto_config: false, :netmask => "255.255.255.0", gateway: "192.168.122.1"
|
40
|
+
|
41
|
+
centos.vm.provision "shell", privileged: "true", inline: <<-SHELL
|
42
|
+
/native/sbin/zfs create -o mountpoint=/opt/db rpool/centos/data/db
|
43
|
+
SHELL
|
27
44
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
ansible.playbook = "playbook.yml"
|
33
|
-
ansible.install = true
|
34
|
-
end
|
45
|
+
# centos.vm.provision "ansible_local" do |ansible|
|
46
|
+
# ansible.playbook = "playbook.yml"
|
47
|
+
# ansible.install = true
|
48
|
+
# end
|
35
49
|
|
36
50
|
centos.vm.provider :zone do |vm|
|
37
51
|
vm.brand = 'lx'
|
data/lib/vagrant-zone/action.rb
CHANGED
@@ -21,10 +21,9 @@ module VagrantPlugins
|
|
21
21
|
b2.use Network
|
22
22
|
b2.use Start
|
23
23
|
b2.use Setup
|
24
|
-
#b2.use PrepareNFSValidIds
|
25
|
-
#b2.use SyncedFolderCleanup
|
26
|
-
#b2.use SyncedFolders
|
27
24
|
b2.use WaitTillUp
|
25
|
+
b2.use SyncedFolderCleanup
|
26
|
+
b2.use SyncedFolders
|
28
27
|
b2.use Provision
|
29
28
|
else
|
30
29
|
env[:halt_on_error] = true
|
data/lib/vagrant-zone/driver.rb
CHANGED
@@ -4,6 +4,7 @@ require "digest/md5"
|
|
4
4
|
require "io/console"
|
5
5
|
require "ruby_expect"
|
6
6
|
require 'netaddr'
|
7
|
+
require "vagrant/util/numeric"
|
7
8
|
|
8
9
|
module VagrantPlugins
|
9
10
|
module ProviderZone
|
@@ -54,9 +55,16 @@ module VagrantPlugins
|
|
54
55
|
end
|
55
56
|
|
56
57
|
def install(machine, ui)
|
58
|
+
config = machine.provider_config
|
57
59
|
box = @machine.data_dir.to_s + '/' + @machine.config.vm.box
|
58
60
|
name = @machine.name
|
59
|
-
|
61
|
+
|
62
|
+
if config.brand == 'lx'
|
63
|
+
execute(false, "#{@pfexec} zoneadm -z #{name} install -s #{box}")
|
64
|
+
end
|
65
|
+
if config.brand == 'bhyve'
|
66
|
+
execute(false, "#{@pfexec} zoneadm -z #{name} install")
|
67
|
+
end
|
60
68
|
end
|
61
69
|
|
62
70
|
def boot(machine, ui)
|
@@ -77,6 +85,27 @@ module VagrantPlugins
|
|
77
85
|
end
|
78
86
|
end
|
79
87
|
|
88
|
+
def create_dataset(machine, ui)
|
89
|
+
config = machine.provider_config
|
90
|
+
dataset = config.zonepath.delete_prefix("/").to_s + "/data"
|
91
|
+
execute(false, "#{@pfexec} zfs create -o zoned=on -p #{dataset}")
|
92
|
+
|
93
|
+
# machine.config.vm.disks.each do |_type, opts|
|
94
|
+
# if _type.to_s = "disk"
|
95
|
+
# name = opts[:name] if !opts[:name].nil?
|
96
|
+
# size = Vagrant::Util::Numeric.string_to_bytes(opts[:size].to_s) if !opts[:size].nil?
|
97
|
+
# quota = "-o quota=" + size.to_s if size
|
98
|
+
#
|
99
|
+
# execute(false, "#{@pfexec} zfs create #{quota} #{dataset}/#{name}")
|
100
|
+
# end
|
101
|
+
# end
|
102
|
+
end
|
103
|
+
|
104
|
+
def delete_dataset(machine, ui)
|
105
|
+
config = machine.provider_config
|
106
|
+
execute(false, "#{@pfexec} zfs destroy -r #{config.zonepath.delete_prefix("/")}/data")
|
107
|
+
end
|
108
|
+
|
80
109
|
def zonecfg(machine, ui)
|
81
110
|
config = machine.provider_config
|
82
111
|
machine.config.vm.networks.each do |_type, opts|
|
@@ -90,6 +119,34 @@ module VagrantPlugins
|
|
90
119
|
allowed_address = @ip + @network.netmask.to_s
|
91
120
|
lofs_current_dir = Dir.pwd
|
92
121
|
|
122
|
+
attr = ''
|
123
|
+
if config.brand == 'lx'
|
124
|
+
attr = %{
|
125
|
+
add attr
|
126
|
+
set name=kernel-version
|
127
|
+
set type=string
|
128
|
+
set value=#{config.kernel}
|
129
|
+
end
|
130
|
+
}
|
131
|
+
end
|
132
|
+
if config.brand == 'bhyve'
|
133
|
+
attr = %{
|
134
|
+
add device
|
135
|
+
set match=/dev/zvol/rdsk#{config.zonepath}
|
136
|
+
end
|
137
|
+
add attr
|
138
|
+
set name=bootrom
|
139
|
+
set type=string
|
140
|
+
set value=BHYVE_RELEASE
|
141
|
+
end
|
142
|
+
add attr
|
143
|
+
set name=bootdisk
|
144
|
+
set type=string
|
145
|
+
set value=#{config.zonepath}
|
146
|
+
end
|
147
|
+
}
|
148
|
+
end
|
149
|
+
|
93
150
|
data = %{
|
94
151
|
create
|
95
152
|
set zonepath=#{config.zonepath}
|
@@ -102,21 +159,20 @@ module VagrantPlugins
|
|
102
159
|
add property (name=ips,value="#{allowed_address}")
|
103
160
|
add property (name=primary,value="true")
|
104
161
|
end
|
105
|
-
add attr
|
106
|
-
set name=kernel-version
|
107
|
-
set type=string
|
108
|
-
set value=#{config.kernel}
|
109
|
-
end
|
110
162
|
add capped-memory
|
111
163
|
set physical=#{config.memory}
|
112
164
|
set swap=#{config.memory}
|
113
165
|
set locked=#{config.memory}
|
114
166
|
end
|
167
|
+
#{attr}
|
115
168
|
add fs
|
116
169
|
set dir=/vagrant
|
117
170
|
set special=#{lofs_current_dir}
|
118
171
|
set type=lofs
|
119
172
|
end
|
173
|
+
add dataset
|
174
|
+
set name=#{config.zonepath.delete_prefix("/")}/data
|
175
|
+
end
|
120
176
|
set max-lwps=2000
|
121
177
|
exit
|
122
178
|
}
|
data/lib/vagrant-zone/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-zone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Merkel
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|