vagrant-zone 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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