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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3c18117a8a3b345b488063565bc03e4778ae50dd4e21f09cd5309de2e043a66
4
- data.tar.gz: 474569e09d7c50e88021065c28741c2326d6aa0d5fdafe0a6f1aae5cfc394a5f
3
+ metadata.gz: bdac02c4e9c3104f07c823aa4171bf31098eeba3f88180d5902ae7a384c7d166
4
+ data.tar.gz: 864c444150175f3f0cf18230dd3bce3b5f3ef2c6ba5ea0ba2fe80870c444006b
5
5
  SHA512:
6
- metadata.gz: feec0720ba256d2f6b05495dee6df5c860336cf4749d7a9467891a3d36f01b7c92989bfa856493ea7012630ec7276899713dec53567e551d907cb886ce3166a4
7
- data.tar.gz: 34a58b2d76e8fe2e6cde84ac567edf0fc478af356c0c9f8ed0b140a8b06ef4ebdab4e605e7cb5c1fd938f73ee4d12eb38af40d92a4f915caaa7f8d931394a2b3
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 = '3dbbdcca-2eab-11e8-b925-23bf77789921'
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
- centos.vm.provision "shell",
29
- inline: "id > /home/vagrant/id"
30
-
31
- centos.vm.provision "ansible_local" do |ansible|
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'
@@ -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
@@ -16,6 +16,7 @@ module VagrantPlugins
16
16
  @driver = @machine.provider.driver
17
17
 
18
18
  @machine.id = SecureRandom.uuid
19
+ @driver.create_dataset(@machine, env[:ui])
19
20
  @driver.zonecfg(@machine, env[:ui])
20
21
  @driver.install(@machine, env[:ui])
21
22
  @app.call(env)
@@ -15,6 +15,7 @@ module VagrantPlugins
15
15
  @machine = env[:machine]
16
16
  @driver = @machine.provider.driver
17
17
 
18
+ @driver.delete_dataset(@machine, env[:ui])
18
19
  @driver.destroy(@machine, env[:ui])
19
20
  @app.call(env)
20
21
  end
@@ -14,7 +14,7 @@ module VagrantPlugins
14
14
  def call(env)
15
15
  @machine = env[:machine]
16
16
  @driver = @machine.provider.driver
17
-
17
+ sleep 2
18
18
  @driver.setup(@machine, env[:ui])
19
19
  @app.call(env)
20
20
  end
@@ -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
- execute(false, "#{@pfexec} zoneadm -z #{name} install -s #{box}")
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
  }
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module ProviderZone
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
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.1
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-04-04 00:00:00.000000000 Z
11
+ date: 2020-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler