vagrant-smartos-zones 0.0.3 → 0.1.0
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 +4 -4
- data/README.md +19 -8
- data/examples/Vagrantfile +2 -0
- data/examples/Vagrantfile.chef_server +2 -0
- data/examples/Vagrantfile.lx +2 -0
- data/examples/Vagrantfile.rsync +2 -0
- data/files/gz_vnic/create_gz_vnic +3 -3
- data/lib/vagrant/smartos/zones/cap/create_gz_vnic.rb +14 -2
- data/lib/vagrant/smartos/zones/models/network.rb +48 -0
- data/lib/vagrant/smartos/zones/util/zone_json.rb +8 -2
- data/lib/vagrant/smartos/zones/version.rb +1 -1
- data/vagrant-smartos-zones.gemspec +2 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1df692477b2ec1b9b16af72471943afc89c47e56
|
4
|
+
data.tar.gz: 896cd4b6f1731874af686af0c7e197bf593dfd27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e9ff7c4b39346cd7daf63b95e14a6a1041c8f3c12235cf86f73ac560d038bd5e5e99a3b9be6b91d187691a817ef7b6220ae8cce21864690eb7f430c76645106
|
7
|
+
data.tar.gz: 3fd14dd777071cc407a25801367fd5f4ecfc35365f20a7ed0d3ad4ec621024580707b1106687e1b18bb6650f26f0bc57f3ec69072a69b730f760e84db0ccbfa5
|
data/README.md
CHANGED
@@ -257,6 +257,23 @@ vagrant zones config key value
|
|
257
257
|
vagrant zones config --delete key
|
258
258
|
```
|
259
259
|
|
260
|
+
### Network
|
261
|
+
|
262
|
+
Networks conflict, particularly when assumptions are made about local
|
263
|
+
networks. For this reason, the network chosen by the plugin when
|
264
|
+
configuring the Global Zone and its local zone can be globally
|
265
|
+
overridden.
|
266
|
+
|
267
|
+
```bash
|
268
|
+
vagrant zones config network 10.0.0.0/24
|
269
|
+
```
|
270
|
+
|
271
|
+
What can go wrong? Well... basically, what can go wrong is that the
|
272
|
+
Global Zone port forwarding will break, and we won't actually be able to
|
273
|
+
create zones. It should be pretty obvious when this is the case.
|
274
|
+
|
275
|
+
* Does your network overlap with VirtualBox's local network space?
|
276
|
+
|
260
277
|
### Pkgsrc mirror
|
261
278
|
|
262
279
|
```bash
|
@@ -295,11 +312,5 @@ references have fallen by the wayside.
|
|
295
312
|
|
296
313
|
## Contributing
|
297
314
|
|
298
|
-
|
299
|
-
|
300
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
301
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
302
|
-
5. Create new Pull Request
|
303
|
-
|
304
|
-
When creating a new Pull Request, `/cc @sax` in the notes to make sure
|
305
|
-
I get an email about it.
|
315
|
+
See the [Contributing](https://github.com/vagrant-smartos/vagrant-smartos-zones/wiki/Contributing)
|
316
|
+
page for guidelines/recommendations on contributions.
|
data/examples/Vagrantfile
CHANGED
data/examples/Vagrantfile.lx
CHANGED
@@ -11,6 +11,8 @@ Vagrant.configure('2') do |config|
|
|
11
11
|
config.vm.synced_folder '.', '/vagrant', disabled: true
|
12
12
|
config.vm.communicator = 'smartos'
|
13
13
|
|
14
|
+
config.ssh.insert_key = false
|
15
|
+
|
14
16
|
config.global_zone.platform_image = 'hourly-20141121'
|
15
17
|
config.global_zone.platform_image_url = 'https://us-east.manta.joyent.com/nahamu/public/smartos/platform-hourly.iso'
|
16
18
|
|
data/examples/Vagrantfile.rsync
CHANGED
@@ -3,13 +3,13 @@
|
|
3
3
|
dladm create-etherstub stub0
|
4
4
|
dladm create-vnic -l stub0 vnic0
|
5
5
|
ipadm create-if vnic0
|
6
|
-
ipadm create-addr -T static -a
|
6
|
+
ipadm create-addr -T static -a <gz_addr> vnic0/static
|
7
7
|
|
8
|
-
echo 'map e1000g0
|
8
|
+
echo 'map e1000g0 <zone_network> -> 0.0.0.0/32' | ipnat -f -
|
9
9
|
|
10
10
|
# When we SSH into port 2222, ensure that that goes to 22 in the GZ
|
11
11
|
# and is never forwarded to the zone.
|
12
|
-
echo 'rdr e1000g0 0.0.0.0/0 port 2222 ->
|
12
|
+
echo 'rdr e1000g0 0.0.0.0/0 port 2222 -> <gz_ip> port 22' | ipnat -f -
|
13
13
|
|
14
14
|
routeadm -u -e ipv4-forwarding
|
15
15
|
routeadm -u -e ipv4-routing
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'vagrant/smartos/zones/cap/base'
|
2
|
+
require 'vagrant/smartos/zones/models/network'
|
2
3
|
|
3
4
|
module Vagrant
|
4
5
|
module Smartos
|
@@ -13,10 +14,13 @@ module Vagrant
|
|
13
14
|
ui.info 'Installing vnic in global zone'
|
14
15
|
sudo = machine.config.smartos.suexec_cmd
|
15
16
|
|
16
|
-
machine.communicate.upload(create_vnic_script,
|
17
|
+
machine.communicate.upload(create_vnic_script, tmp_script)
|
18
|
+
machine.communicate.execute('sed -i -e \'s@<gz_addr>@%s@\' %s' % [network.gz_addr, tmp_script])
|
19
|
+
machine.communicate.execute('sed -i -e \'s@<zone_network>@%s@\' %s' % [network.zone_network, tmp_script])
|
20
|
+
machine.communicate.execute('sed -i -e \'s@<gz_ip>@%s@\' %s' % [network.gz_stub_ip, tmp_script])
|
17
21
|
machine.communicate.upload(vnic_smf_manifest, '%s/create-gz-vnic.xml' % vm_tmp_folder)
|
18
22
|
|
19
|
-
machine.communicate.execute("#{sudo} mv %s
|
23
|
+
machine.communicate.execute("#{sudo} mv %s /opt/custom/method" % tmp_script)
|
20
24
|
machine.communicate.execute("#{sudo} mv %s/create-gz-vnic.xml /opt/custom/smf" % vm_tmp_folder)
|
21
25
|
|
22
26
|
machine.communicate.execute("#{sudo} svccfg import /opt/custom/smf/create-gz-vnic.xml")
|
@@ -31,6 +35,14 @@ module Vagrant
|
|
31
35
|
File.join(local_files_folder, 'gz_vnic', 'create_gz_vnic')
|
32
36
|
end
|
33
37
|
|
38
|
+
def network
|
39
|
+
@network ||= Models::Network.new(machine.env)
|
40
|
+
end
|
41
|
+
|
42
|
+
def tmp_script
|
43
|
+
'%s/create_gz_vnic' % vm_tmp_folder
|
44
|
+
end
|
45
|
+
|
34
46
|
def vnic_smf_manifest
|
35
47
|
File.join(local_files_folder, 'smf', 'create-gz-vnic.xml')
|
36
48
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'netaddr'
|
2
|
+
require 'vagrant/smartos/zones/models/config'
|
3
|
+
|
4
|
+
module Vagrant
|
5
|
+
module Smartos
|
6
|
+
module Zones
|
7
|
+
module Models
|
8
|
+
class Network
|
9
|
+
attr_reader :env
|
10
|
+
|
11
|
+
def initialize(env)
|
12
|
+
@env = env
|
13
|
+
end
|
14
|
+
|
15
|
+
def network
|
16
|
+
plugin_config.hash['network'] || '172.16.0.0/24'
|
17
|
+
end
|
18
|
+
|
19
|
+
def zone_network
|
20
|
+
[cidr.network, cidr.bits].join('/')
|
21
|
+
end
|
22
|
+
|
23
|
+
def gz_addr
|
24
|
+
[gz_stub_ip, cidr.bits].join('/')
|
25
|
+
end
|
26
|
+
|
27
|
+
def gz_stub_ip
|
28
|
+
cidr[1].ip
|
29
|
+
end
|
30
|
+
|
31
|
+
def zone_ip
|
32
|
+
cidr[2].ip
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def cidr
|
38
|
+
@cidr ||= NetAddr::CIDR.create(network)
|
39
|
+
end
|
40
|
+
|
41
|
+
def plugin_config
|
42
|
+
@config ||= Models::Config.config(env)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'vagrant/smartos/zones/models/network'
|
2
|
+
|
1
3
|
module Vagrant
|
2
4
|
module Smartos
|
3
5
|
module Zones
|
@@ -51,7 +53,7 @@ module Vagrant
|
|
51
53
|
|
52
54
|
def nics
|
53
55
|
{
|
54
|
-
'nics' => [nic_info('stub0',
|
56
|
+
'nics' => [nic_info('stub0', network.zone_ip)]
|
55
57
|
}
|
56
58
|
end
|
57
59
|
|
@@ -60,7 +62,7 @@ module Vagrant
|
|
60
62
|
'nic_tag' => tag,
|
61
63
|
'ip' => ip,
|
62
64
|
'netmask' => '255.255.255.0',
|
63
|
-
'gateway' =>
|
65
|
+
'gateway' => network.gz_stub_ip,
|
64
66
|
'allow_ip_spoofing' => true
|
65
67
|
}
|
66
68
|
end
|
@@ -70,6 +72,10 @@ module Vagrant
|
|
70
72
|
def lx_brand?
|
71
73
|
machine.config.zone.brand == 'lx'
|
72
74
|
end
|
75
|
+
|
76
|
+
def network
|
77
|
+
@network ||= Models::Network.new(machine.env)
|
78
|
+
end
|
73
79
|
end
|
74
80
|
end
|
75
81
|
end
|
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
+
spec.add_dependency 'netaddr'
|
22
|
+
|
21
23
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
22
24
|
spec.add_development_dependency 'pry-nav'
|
23
25
|
spec.add_development_dependency 'rake'
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-smartos-zones
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Saxby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: netaddr
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,6 +131,7 @@ files:
|
|
117
131
|
- lib/vagrant/smartos/zones/hooks.rb
|
118
132
|
- lib/vagrant/smartos/zones/models/config.rb
|
119
133
|
- lib/vagrant/smartos/zones/models/dataset.rb
|
134
|
+
- lib/vagrant/smartos/zones/models/network.rb
|
120
135
|
- lib/vagrant/smartos/zones/models/snapshot.rb
|
121
136
|
- lib/vagrant/smartos/zones/models/zone.rb
|
122
137
|
- lib/vagrant/smartos/zones/models/zone_group.rb
|
@@ -172,3 +187,4 @@ test_files:
|
|
172
187
|
- test/integration/default/serverspec/user_spec.rb
|
173
188
|
- test/templates/Vagrantfile.smartos.erb
|
174
189
|
- test/templates/bootstrap.sh
|
190
|
+
has_rdoc:
|