vagrant-yaybu 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +47 -0
- data/Vagrantfile +4 -4
- data/lib/vagrant-yaybu/provisioner.rb +76 -1
- data/lib/vagrant-yaybu/version.rb +1 -1
- metadata +4 -3
data/CHANGES
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
Changelog for vagrant-yaybu
|
2
|
+
===========================
|
3
|
+
|
4
|
+
0.0.6 (2012-02-12)
|
5
|
+
------------------
|
6
|
+
|
7
|
+
- Add an automatically generated ``vagrant`` node accessible from yay. This
|
8
|
+
can provide details about all your defined VMs::
|
9
|
+
|
10
|
+
vagrant:
|
11
|
+
vms:
|
12
|
+
web:
|
13
|
+
name: web
|
14
|
+
interfaces:
|
15
|
+
- name: eth1
|
16
|
+
address: 10.33.33.33
|
17
|
+
netmask: 255.255.255.0
|
18
|
+
gateway: 10.33.33.1
|
19
|
+
|
20
|
+
- name: eth0
|
21
|
+
type: dhcp
|
22
|
+
|
23
|
+
To reference eth1 on the current VM you can use::
|
24
|
+
|
25
|
+
${vagrant.vm.interfaces[0].address}
|
26
|
+
|
27
|
+
Unfortunately you won't be able to access the IP address of eth0 presently.
|
28
|
+
When using vagrant you rarely access the IP directly and have port forwards
|
29
|
+
to localhost on the host. eth0 will always be the last interface in the list.
|
30
|
+
|
31
|
+
- The bootstrap functionality will bootstrap the same version of yay and Yaybu
|
32
|
+
This can be overriden by setting ``yay_version`` and ``yaybu_version`` in
|
33
|
+
your Vagrantfile.
|
34
|
+
|
35
|
+
|
36
|
+
0.0.5 (2012-02-18)
|
37
|
+
------------------
|
38
|
+
|
39
|
+
- Update to support vagrant 0.9.7+
|
40
|
+
|
41
|
+
|
42
|
+
0.0.4 (2012-02-18)
|
43
|
+
-------------
|
44
|
+
|
45
|
+
- Update to support vagrant 0.9+
|
46
|
+
|
47
|
+
|
data/Vagrantfile
CHANGED
@@ -15,11 +15,11 @@ Vagrant::Config.run do |config|
|
|
15
15
|
# You can add directories and remote locations to the search path
|
16
16
|
# Both Yay files and assets (templates, etc) will be fetched from here.
|
17
17
|
# The default search path is the current working directory
|
18
|
-
cfg.searchpath << "../Projects/yaybu-configuration/"
|
19
|
-
cfg.searchpath << "https://raw.github.com/isotoma/yaybu-examples/master/"
|
18
|
+
# cfg.searchpath << "../Projects/yaybu-configuration/"
|
19
|
+
# cfg.searchpath << "https://raw.github.com/isotoma/yaybu-examples/master/"
|
20
20
|
|
21
21
|
# You can load any config that is on the searchpath
|
22
|
-
cfg.include << "configuration/minecraft.yay"
|
22
|
+
# cfg.include << "configuration/minecraft.yay"
|
23
23
|
|
24
24
|
# The ``yay`` parameter lets you put arbritrary config inside your Vagrant file
|
25
25
|
cfg.yay = <<-EOS
|
@@ -31,7 +31,7 @@ Vagrant::Config.run do |config|
|
|
31
31
|
|
32
32
|
# Advanced Yaybu hackers might not want to use the default python or a packaged
|
33
33
|
# version of Yaybu. You can set this to point at your development environment.
|
34
|
-
|
34
|
+
cfg.python = "/opt/virtualenvs/yaybu/bin/python"
|
35
35
|
|
36
36
|
end
|
37
37
|
end
|
@@ -38,6 +38,10 @@ class opts:
|
|
38
38
|
no_resume = False
|
39
39
|
env_passthrough = []
|
40
40
|
|
41
|
+
vagrant_config = StringIO.StringIO("""
|
42
|
+
<%= vagrant %>
|
43
|
+
""")
|
44
|
+
|
41
45
|
includes = StringIO.StringIO("""
|
42
46
|
<% if includes.length > 0 %>
|
43
47
|
.include:
|
@@ -52,6 +56,7 @@ raw_config = StringIO.StringIO("""
|
|
52
56
|
""")
|
53
57
|
|
54
58
|
config = Config(searchpath=opts.ypath)
|
59
|
+
config.load(vagrant_config)
|
55
60
|
config.load(includes)
|
56
61
|
config.load(raw_config)
|
57
62
|
|
@@ -80,6 +85,8 @@ module Vagrant
|
|
80
85
|
attr_accessor :python
|
81
86
|
attr_accessor :searchpath
|
82
87
|
attr_accessor :include
|
88
|
+
attr_accessor :yay_version
|
89
|
+
attr_accessor :yaybu_version
|
83
90
|
|
84
91
|
def initialize
|
85
92
|
super
|
@@ -88,6 +95,9 @@ module Vagrant
|
|
88
95
|
@python = "python"
|
89
96
|
@searchpath = []
|
90
97
|
@include = []
|
98
|
+
|
99
|
+
@yay_version = nil
|
100
|
+
@yaybu_version = nil
|
91
101
|
end
|
92
102
|
end
|
93
103
|
|
@@ -101,9 +111,26 @@ module Vagrant
|
|
101
111
|
ssh.sudo("which yaybu", :error_class => YaybuError, :_key => :yaybu_not_detected, :binary => "yaybu")
|
102
112
|
rescue
|
103
113
|
env[:ui].info "Yaybu not found so attempting to install it"
|
114
|
+
|
115
|
+
if not config.yay_version then
|
116
|
+
env[:ui].info "yay version not specified in Vagrantfile, determining from host system"
|
117
|
+
config.yay_version = get_local_version?("yay")
|
118
|
+
end
|
119
|
+
|
120
|
+
if not config.yaybu_version then
|
121
|
+
env[:ui].info "Yaybu version not specified in Vagrantfile, determining from host system"
|
122
|
+
config.yaybu_version = get_local_version?("Yaybu")
|
123
|
+
end
|
124
|
+
|
125
|
+
env[:ui].info "Running apt-get updating and checking setuptools"
|
104
126
|
ssh.sudo("apt-get update")
|
105
127
|
ssh.sudo("apt-get install python-setuptools -y")
|
106
|
-
|
128
|
+
|
129
|
+
env[:ui].info "Running 'easy_install yay==#{config.yay_version}'"
|
130
|
+
ssh.sudo("easy_install yay==#{config.yay_version}")
|
131
|
+
|
132
|
+
env[:ui].info "Running 'easy_install Yaybu==#{config.yaybu_version}'"
|
133
|
+
ssh.sudo("easy_install Yaybu==#{config.yaybu_version}")
|
107
134
|
end
|
108
135
|
end
|
109
136
|
|
@@ -122,6 +149,53 @@ module Vagrant
|
|
122
149
|
end
|
123
150
|
end
|
124
151
|
|
152
|
+
def get_local_version?(mod)
|
153
|
+
version = `#{config.python} -c 'print __import__("pkg_resources").get_distribution("#{mod}").version'`.strip
|
154
|
+
if $?.to_i != 0 then
|
155
|
+
raise YaybuError.new "Failed to get host version for '#{mod}'"
|
156
|
+
end
|
157
|
+
|
158
|
+
version
|
159
|
+
end
|
160
|
+
|
161
|
+
def get_vagrant_yaml?
|
162
|
+
data = {}
|
163
|
+
vagrant = data['vagrant'] = {}
|
164
|
+
vms = vagrant['vms'] = {}
|
165
|
+
|
166
|
+
env[:vm].env.vms.each do |name, vm|
|
167
|
+
info = {
|
168
|
+
"name" => vm.name.to_s,
|
169
|
+
"interfaces" => [],
|
170
|
+
}
|
171
|
+
|
172
|
+
idx = 1
|
173
|
+
vm.config.vm.networks.each do |type, ips|
|
174
|
+
ips.each do |ip|
|
175
|
+
info["interfaces"] << {
|
176
|
+
"name" => "eth#{idx}",
|
177
|
+
"address" => ip,
|
178
|
+
"netmask" => "255.255.255.0",
|
179
|
+
"gateway" => (ip.split(".").slice(0, 3) + [1]).join("."),
|
180
|
+
}
|
181
|
+
idx += 1
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
info["interfaces"] << {
|
186
|
+
"name" => "eth0",
|
187
|
+
"type" => "dhcp",
|
188
|
+
}
|
189
|
+
|
190
|
+
vms[name.to_s] = info
|
191
|
+
end
|
192
|
+
|
193
|
+
name = env[:vm].name.to_s
|
194
|
+
vagrant["vm"] = "${vagrant.vms.#{name}}"
|
195
|
+
|
196
|
+
"#" + data.to_yaml
|
197
|
+
end
|
198
|
+
|
125
199
|
def provision!
|
126
200
|
verify_import "yaybu"
|
127
201
|
verify_import "yay"
|
@@ -136,6 +210,7 @@ module Vagrant
|
|
136
210
|
:ssh_port => env[:vm].ssh.info[:port],
|
137
211
|
:private_key_path => env[:vm].ssh.info[:private_key_path],
|
138
212
|
:yay => config.yay,
|
213
|
+
:vagrant => get_vagrant_yaml?,
|
139
214
|
:searchpath => config.searchpath,
|
140
215
|
:includes => config.include,
|
141
216
|
})
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-yaybu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-20 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: This plugin adds a Yaybu 'push' provisioner to Vagrant
|
15
15
|
email:
|
@@ -19,6 +19,7 @@ extensions: []
|
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
21
|
- .gitignore
|
22
|
+
- CHANGES
|
22
23
|
- Gemfile
|
23
24
|
- Rakefile
|
24
25
|
- Vagrantfile
|
@@ -48,7 +49,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
48
49
|
version: '0'
|
49
50
|
requirements: []
|
50
51
|
rubyforge_project: vagrant-yaybu
|
51
|
-
rubygems_version: 1.8.
|
52
|
+
rubygems_version: 1.8.11
|
52
53
|
signing_key:
|
53
54
|
specification_version: 3
|
54
55
|
summary: Teach Vagrant about Yaybu
|