vagabond 0.2.0 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +18 -0
- data/README.md +125 -4
- data/bin/vagabond +43 -16
- data/lib/vagabond/actions/cluster.rb +66 -0
- data/lib/vagabond/actions/create.rb +12 -7
- data/lib/vagabond/actions/destroy.rb +69 -15
- data/lib/vagabond/actions/init.rb +75 -0
- data/lib/vagabond/actions/provision.rb +4 -2
- data/lib/vagabond/actions/status.rb +33 -22
- data/lib/vagabond/actions/up.rb +8 -1
- data/lib/vagabond/bootstraps/server-zero.erb +20 -0
- data/lib/vagabond/bootstraps/server.erb +3 -2
- data/lib/vagabond/constants.rb +0 -15
- data/lib/vagabond/cookbooks/lxc/CHANGELOG.md +16 -0
- data/lib/vagabond/cookbooks/lxc/Gemfile +3 -2
- data/lib/vagabond/cookbooks/lxc/Gemfile.lock +30 -121
- data/lib/vagabond/cookbooks/lxc/README.md +43 -14
- data/lib/vagabond/cookbooks/lxc/attributes/default.rb +3 -3
- data/lib/vagabond/cookbooks/lxc/files/default/lxc-awesome-ephemeral +499 -0
- data/lib/vagabond/cookbooks/lxc/libraries/lxc.rb +223 -58
- data/lib/vagabond/cookbooks/lxc/libraries/lxc_file_config.rb +3 -0
- data/lib/vagabond/cookbooks/lxc/libraries/monkey.rb +51 -0
- data/lib/vagabond/cookbooks/lxc/metadata.rb +6 -5
- data/lib/vagabond/cookbooks/lxc/providers/config.rb +9 -16
- data/lib/vagabond/cookbooks/lxc/providers/container.rb +241 -229
- data/lib/vagabond/cookbooks/lxc/providers/default.rb +57 -0
- data/lib/vagabond/cookbooks/lxc/providers/ephemeral.rb +40 -0
- data/lib/vagabond/cookbooks/lxc/providers/fstab.rb +13 -54
- data/lib/vagabond/cookbooks/lxc/providers/interface.rb +13 -67
- data/lib/vagabond/cookbooks/lxc/providers/service.rb +14 -14
- data/lib/vagabond/cookbooks/lxc/recipes/default.rb +17 -4
- data/lib/vagabond/cookbooks/lxc/recipes/install_dependencies.rb +1 -1
- data/lib/vagabond/cookbooks/lxc/resources/config.rb +2 -2
- data/lib/vagabond/cookbooks/lxc/resources/container.rb +31 -6
- data/lib/vagabond/cookbooks/lxc/resources/default.rb +12 -0
- data/lib/vagabond/cookbooks/lxc/resources/ephemeral.rb +13 -0
- data/lib/vagabond/cookbooks/lxc/resources/fstab.rb +2 -1
- data/lib/vagabond/cookbooks/lxc/resources/interface.rb +6 -3
- data/lib/vagabond/cookbooks/lxc/resources/service.rb +1 -1
- data/lib/vagabond/cookbooks/lxc/templates/default/file_content.erb +2 -0
- data/lib/vagabond/cookbooks/lxc/templates/default/interface.erb +9 -3
- data/lib/vagabond/cookbooks/vagabond/README.md +10 -0
- data/lib/vagabond/cookbooks/vagabond/attributes/default.rb +1 -0
- data/lib/vagabond/cookbooks/vagabond/files/default/lxc-centos +13 -6
- data/lib/vagabond/cookbooks/vagabond/metadata.rb +1 -0
- data/lib/vagabond/cookbooks/vagabond/recipes/default.rb +46 -4
- data/lib/vagabond/cookbooks/vagabond/recipes/zero.rb +9 -0
- data/lib/vagabond/errors.rb +23 -0
- data/lib/vagabond/helpers.rb +41 -14
- data/lib/vagabond/internal_configuration.rb +120 -27
- data/lib/vagabond/kitchen.rb +143 -63
- data/lib/vagabond/knife.rb +8 -5
- data/lib/vagabond/layout.rb +16 -0
- data/lib/vagabond/monkey/kitchen_config.rb +23 -0
- data/lib/vagabond/server.rb +79 -63
- data/lib/vagabond/spec.rb +345 -0
- data/lib/vagabond/uploader.rb +30 -0
- data/lib/vagabond/uploader/berkshelf.rb +53 -0
- data/lib/vagabond/uploader/knife.rb +24 -0
- data/lib/vagabond/uploader/librarian.rb +31 -0
- data/lib/vagabond/vagabond.rb +30 -11
- data/lib/vagabond/vagabondfile.rb +40 -5
- data/lib/vagabond/version.rb +1 -1
- data/vagabond.gemspec +5 -2
- metadata +75 -15
- data/lib/vagabond/cookbooks/lxc/resources/#container.rb# +0 -28
- data/lib/vagabond/cookbooks/lxc/test/kitchen/Kitchenfile +0 -7
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/metadata.rb +0 -2
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/centos_lxc.rb +0 -0
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/chef-bootstrap.rb +0 -0
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_files.rb +0 -0
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_templates.rb +0 -0
- data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/ubuntu_lxc.rb +0 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'vagabond/uploader/knife'
|
2
|
+
|
3
|
+
module Vagabond
|
4
|
+
class Uploader
|
5
|
+
class Librarian < Knife
|
6
|
+
|
7
|
+
def initialize(*args)
|
8
|
+
super
|
9
|
+
unless(options[:cheffile])
|
10
|
+
raise ArgumentError.new "Option 'cheffile' is required!"
|
11
|
+
end
|
12
|
+
unless(File.exists?(options[:cheffile]))
|
13
|
+
raise ArgumentError.new "Option 'cheffile' is not a valid path!"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def prepare
|
18
|
+
com = "librarian-chef install --path=#{store}"
|
19
|
+
debug(com)
|
20
|
+
cmd = Mixlib::ShellOut.new(com,
|
21
|
+
:live_stream => options[:debug],
|
22
|
+
:cwd => File.dirname(options[:cheffile])
|
23
|
+
)
|
24
|
+
cmd.run_command
|
25
|
+
cmd.error!
|
26
|
+
options[:cookbook_paths] = [store]
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/vagabond/vagabond.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'chef/knife/core/ui'
|
3
|
+
require 'vagabond/uploader'
|
3
4
|
require File.join(File.dirname(__FILE__), 'cookbooks/lxc/libraries/lxc.rb')
|
4
5
|
|
5
|
-
%w(vagabondfile internal_configuration helpers).each do |dep|
|
6
|
+
%w(constants errors vagabondfile internal_configuration helpers).each do |dep|
|
6
7
|
require "vagabond/#{dep}"
|
7
8
|
end
|
8
9
|
|
@@ -78,6 +79,7 @@ module Vagabond
|
|
78
79
|
# Creates an instance
|
79
80
|
def initialize(*args)
|
80
81
|
super
|
82
|
+
@threads = Mash.new
|
81
83
|
@mappings_key = :mappings
|
82
84
|
end
|
83
85
|
|
@@ -113,7 +115,7 @@ module Vagabond
|
|
113
115
|
setup_ui
|
114
116
|
ui.info "#{ui.color('Vagabond:', :yellow, :bold)} - Advocating idleness and work-shyness"
|
115
117
|
ui.info " #{ui.color('Version:', :blue)} - #{VERSION.version} (#{VERSION.codename})"
|
116
|
-
exit
|
118
|
+
exit
|
117
119
|
end
|
118
120
|
|
119
121
|
def execute
|
@@ -125,18 +127,20 @@ module Vagabond
|
|
125
127
|
@name = name
|
126
128
|
@options = options.dup
|
127
129
|
if(args.last.is_a?(Hash))
|
128
|
-
_ui = args.delete(:ui)
|
130
|
+
_ui = args.last.delete(:ui)
|
129
131
|
@options.merge!(args.last)
|
130
132
|
end
|
133
|
+
@leftover_args = args
|
131
134
|
setup_ui(_ui)
|
132
135
|
load_configurations
|
133
|
-
validate!
|
136
|
+
validate! unless action == 'cluster' # TODO -> allow action
|
137
|
+
# method to check for validation run
|
134
138
|
end
|
135
139
|
|
136
140
|
def name_required!
|
137
141
|
unless(name)
|
138
142
|
ui.fatal "Node name is required!"
|
139
|
-
|
143
|
+
raise VagabondError::MissingNodeName.new
|
140
144
|
end
|
141
145
|
end
|
142
146
|
|
@@ -150,9 +154,10 @@ module Vagabond
|
|
150
154
|
end
|
151
155
|
|
152
156
|
def load_configurations
|
153
|
-
@vagabondfile = Vagabondfile.new(options[:vagabond_file])
|
157
|
+
@vagabondfile = Vagabondfile.new(options[:vagabond_file], :allow_missing)
|
154
158
|
options[:sudo] = sudo
|
155
159
|
options[:disable_solo] = true if @action.to_s == 'status' && lxc_installed?
|
160
|
+
Chef::Log.init('/dev/null') unless options[:debug]
|
156
161
|
Lxc.use_sudo = @vagabondfile[:sudo].nil? ? true : @vagabondfile[:sudo]
|
157
162
|
@internal_config = InternalConfiguration.new(@vagabondfile, ui, options)
|
158
163
|
@config = @vagabondfile[:boxes][name]
|
@@ -162,10 +167,12 @@ module Vagabond
|
|
162
167
|
srv_name = @internal_config[:mappings][:server]
|
163
168
|
srv = Lxc.new(srv_name) if srv_name
|
164
169
|
if(srv_name && srv.running?)
|
165
|
-
|
170
|
+
proto = @vagabondfile[:local_chef_server][:zero] ? 'http' : 'https'
|
171
|
+
options[:knife_opts] = " --server-url #{proto}://#{srv.container_ip(10, true)}"
|
166
172
|
else
|
167
|
-
|
168
|
-
|
173
|
+
unless(@action.to_sym == :status || name.to_s =='server')
|
174
|
+
ui.warn 'Local chef server is not currently running!' unless @action.to_sym == :status
|
175
|
+
end
|
169
176
|
end
|
170
177
|
end
|
171
178
|
end
|
@@ -175,12 +182,12 @@ module Vagabond
|
|
175
182
|
if(name.to_s == 'server')
|
176
183
|
ui.fatal "RESERVED node name supplied: #{ui.color(name, :red)}"
|
177
184
|
ui.info ui.color(" -> Try: vagabond server #{@action}", :cyan)
|
178
|
-
|
185
|
+
raise VagabondError::ReservedName.new(name)
|
179
186
|
end
|
180
187
|
if(name && config.nil? && !options[:disable_name_validate])
|
181
188
|
ui.fatal "Invalid node name supplied: #{ui.color(name, :red)}"
|
182
189
|
ui.info ui.color(" -> Available: #{vagabondfile[:nodes].keys.sort.join(', ')}", :cyan)
|
183
|
-
|
190
|
+
raise VagabondError::InvalidName.new(name)
|
184
191
|
end
|
185
192
|
end
|
186
193
|
|
@@ -202,5 +209,17 @@ module Vagabond
|
|
202
209
|
def lxc_installed?
|
203
210
|
system('which lxc-info > /dev/null')
|
204
211
|
end
|
212
|
+
|
213
|
+
def wait_for_completion(type=nil)
|
214
|
+
if(type)
|
215
|
+
Array(@threads[:type]).map(&:join)
|
216
|
+
else
|
217
|
+
@threads.values.map do |threads|
|
218
|
+
threads.each do |thread_set|
|
219
|
+
Array(thread_set).map(&:join)
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
205
224
|
end
|
206
225
|
end
|
@@ -6,6 +6,7 @@ module Vagabond
|
|
6
6
|
attr_reader :path
|
7
7
|
attr_reader :config
|
8
8
|
|
9
|
+
DEFAULT_KEYS = %w(boxes mappings test_mappings spec_mappings local_chef_server)
|
9
10
|
ALIASES = Mash.new(:boxes => :nodes, :nodes => :boxes)
|
10
11
|
|
11
12
|
def initialize(path=nil, *args)
|
@@ -15,6 +16,9 @@ module Vagabond
|
|
15
16
|
end
|
16
17
|
|
17
18
|
def [](k)
|
19
|
+
if(DEFAULT_KEYS.include?(k.to_s))
|
20
|
+
@config[k] ||= Mash.new
|
21
|
+
end
|
18
22
|
aliased(k) || @config[k]
|
19
23
|
end
|
20
24
|
|
@@ -22,10 +26,10 @@ module Vagabond
|
|
22
26
|
if(ALIASES.has_key?(k))
|
23
27
|
v = [@config[k], @config[ALIASES[k]]].compact
|
24
28
|
if(v.size > 1)
|
25
|
-
case v.first
|
29
|
+
case v.first
|
26
30
|
when Array
|
27
31
|
m = :|
|
28
|
-
when Hash
|
32
|
+
when Hash, Mash
|
29
33
|
m = :merge
|
30
34
|
else
|
31
35
|
m = :+
|
@@ -37,15 +41,42 @@ module Vagabond
|
|
37
41
|
end
|
38
42
|
end
|
39
43
|
|
40
|
-
def load_configuration!(
|
44
|
+
def load_configuration!(*args)
|
45
|
+
unless(args.empty?)
|
46
|
+
no_raise = args.first == true
|
47
|
+
force_store = args.include?(:force_store_path)
|
48
|
+
no_raise ||= force_store
|
49
|
+
end
|
41
50
|
if(@path && File.exists?(@path))
|
42
51
|
@config = Mash.new(self.instance_eval(IO.read(@path), @path, 1))
|
43
|
-
|
52
|
+
end
|
53
|
+
if(!@config || force_store)
|
44
54
|
raise 'No Vagabondfile file found!' unless no_raise
|
45
|
-
|
55
|
+
generate_store_path
|
56
|
+
@config = Mash[*DEFAULT_KEYS.map{|k| [k, Mash.new]}.flatten]
|
46
57
|
end
|
47
58
|
end
|
48
59
|
|
60
|
+
def generate_store_path
|
61
|
+
@path ||= File.expand_path(File.join(Dir.pwd, 'Vagabondfile'))
|
62
|
+
@store_path = File.join('/tmp/vagabond-solos', directory.gsub(%r{[^0-9a-zA-Z]}, '-'), 'Vagabondfile')
|
63
|
+
@store_path = File.expand_path(@store_path.gsub('-', '/'))
|
64
|
+
FileUtils.mkdir_p(File.dirname(@store_path))
|
65
|
+
File.dirname(@store_path)
|
66
|
+
end
|
67
|
+
|
68
|
+
def store_path
|
69
|
+
@store_path || @path
|
70
|
+
end
|
71
|
+
|
72
|
+
def directory
|
73
|
+
File.dirname(@path)
|
74
|
+
end
|
75
|
+
|
76
|
+
def store_directory
|
77
|
+
File.dirname(@store_path || @path)
|
78
|
+
end
|
79
|
+
|
49
80
|
def discover_path(path)
|
50
81
|
d_path = Dir.glob(File.join(path, 'Vagabondfile')).first
|
51
82
|
unless(d_path)
|
@@ -55,5 +86,9 @@ module Vagabond
|
|
55
86
|
end
|
56
87
|
d_path
|
57
88
|
end
|
89
|
+
|
90
|
+
def local_chef_server?
|
91
|
+
self[:local_chef_server] && self[:local_chef_server][:enabled]
|
92
|
+
end
|
58
93
|
end
|
59
94
|
end
|
data/lib/vagabond/version.rb
CHANGED
data/vagabond.gemspec
CHANGED
@@ -15,7 +15,10 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.files = Dir['**/*']
|
16
16
|
s.executables = ['vagabond']
|
17
17
|
s.add_dependency 'chef'
|
18
|
-
s.add_dependency 'librarian'
|
19
|
-
s.add_dependency 'test-kitchen', '1.0.0.alpha
|
18
|
+
s.add_dependency 'librarian-chef'
|
19
|
+
s.add_dependency 'test-kitchen', '>= 1.0.0.alpha'
|
20
20
|
s.add_dependency 'thor'
|
21
|
+
s.add_dependency 'uuidtools'
|
22
|
+
s.add_dependency 'elecksee', '>= 1.0.3'
|
23
|
+
s.add_dependency 'serverspec', '>= 0.6.3'
|
21
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagabond
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
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: 2013-
|
12
|
+
date: 2013-06-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
@@ -28,7 +28,7 @@ dependencies:
|
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name: librarian
|
31
|
+
name: librarian-chef
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
@@ -48,17 +48,17 @@ dependencies:
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- - '
|
51
|
+
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 1.0.0.alpha
|
53
|
+
version: 1.0.0.alpha
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- - '
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.0.0.alpha
|
61
|
+
version: 1.0.0.alpha
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: thor
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,6 +75,54 @@ dependencies:
|
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: uuidtools
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: elecksee
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 1.0.3
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.0.3
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: serverspec
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.6.3
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.6.3
|
78
126
|
description: Vagabonds, lazing about
|
79
127
|
email: chrisroberts.code@gmail.com
|
80
128
|
executables:
|
@@ -83,35 +131,34 @@ extensions: []
|
|
83
131
|
extra_rdoc_files:
|
84
132
|
- README.md
|
85
133
|
files:
|
134
|
+
- lib/vagabond/cookbooks/lxc/files/default/lxc-awesome-ephemeral
|
86
135
|
- lib/vagabond/cookbooks/lxc/files/default/knife_lxc
|
87
136
|
- lib/vagabond/cookbooks/lxc/metadata.rb
|
88
137
|
- lib/vagabond/cookbooks/lxc/templates/default/interface.erb
|
89
138
|
- lib/vagabond/cookbooks/lxc/templates/default/fstab.erb
|
90
139
|
- lib/vagabond/cookbooks/lxc/templates/default/client.rb.erb
|
140
|
+
- lib/vagabond/cookbooks/lxc/templates/default/file_content.erb
|
91
141
|
- lib/vagabond/cookbooks/lxc/templates/default/default-lxc.erb
|
92
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/metadata.rb
|
93
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_files.rb
|
94
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/centos_lxc.rb
|
95
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_templates.rb
|
96
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/ubuntu_lxc.rb
|
97
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/chef-bootstrap.rb
|
98
|
-
- lib/vagabond/cookbooks/lxc/test/kitchen/Kitchenfile
|
99
142
|
- lib/vagabond/cookbooks/lxc/Gemfile
|
100
143
|
- lib/vagabond/cookbooks/lxc/attributes/default.rb
|
101
144
|
- lib/vagabond/cookbooks/lxc/README.md
|
102
145
|
- lib/vagabond/cookbooks/lxc/providers/fstab.rb
|
146
|
+
- lib/vagabond/cookbooks/lxc/providers/default.rb
|
103
147
|
- lib/vagabond/cookbooks/lxc/providers/interface.rb
|
104
148
|
- lib/vagabond/cookbooks/lxc/providers/service.rb
|
105
149
|
- lib/vagabond/cookbooks/lxc/providers/config.rb
|
150
|
+
- lib/vagabond/cookbooks/lxc/providers/ephemeral.rb
|
106
151
|
- lib/vagabond/cookbooks/lxc/providers/container.rb
|
152
|
+
- lib/vagabond/cookbooks/lxc/libraries/monkey.rb
|
107
153
|
- lib/vagabond/cookbooks/lxc/libraries/lxc_file_config.rb
|
108
154
|
- lib/vagabond/cookbooks/lxc/libraries/lxc_expanded_resources.rb
|
109
155
|
- lib/vagabond/cookbooks/lxc/libraries/lxc.rb
|
110
156
|
- lib/vagabond/cookbooks/lxc/resources/fstab.rb
|
157
|
+
- lib/vagabond/cookbooks/lxc/resources/default.rb
|
111
158
|
- lib/vagabond/cookbooks/lxc/resources/interface.rb
|
112
159
|
- lib/vagabond/cookbooks/lxc/resources/service.rb
|
113
160
|
- lib/vagabond/cookbooks/lxc/resources/config.rb
|
114
|
-
- lib/vagabond/cookbooks/lxc/resources
|
161
|
+
- lib/vagabond/cookbooks/lxc/resources/ephemeral.rb
|
115
162
|
- lib/vagabond/cookbooks/lxc/resources/container.rb
|
116
163
|
- lib/vagabond/cookbooks/lxc/CHANGELOG.md
|
117
164
|
- lib/vagabond/cookbooks/lxc/Gemfile.lock
|
@@ -122,29 +169,42 @@ files:
|
|
122
169
|
- lib/vagabond/cookbooks/vagabond/files/default/lxc-centos
|
123
170
|
- lib/vagabond/cookbooks/vagabond/metadata.rb
|
124
171
|
- lib/vagabond/cookbooks/vagabond/attributes/default.rb
|
172
|
+
- lib/vagabond/cookbooks/vagabond/README.md
|
125
173
|
- lib/vagabond/cookbooks/vagabond/libraries/vagabond.rb
|
126
174
|
- lib/vagabond/cookbooks/vagabond/recipes/default.rb
|
175
|
+
- lib/vagabond/cookbooks/vagabond/recipes/zero.rb
|
176
|
+
- lib/vagabond/errors.rb
|
127
177
|
- lib/vagabond/server.rb
|
128
178
|
- lib/vagabond/kitchen.rb
|
129
179
|
- lib/vagabond/vagabondfile.rb
|
180
|
+
- lib/vagabond/bootstraps/server-zero.erb
|
130
181
|
- lib/vagabond/bootstraps/server.erb
|
131
182
|
- lib/vagabond/version.rb
|
132
183
|
- lib/vagabond/knife.rb
|
184
|
+
- lib/vagabond/layout.rb
|
133
185
|
- lib/vagabond/vagabond.rb
|
186
|
+
- lib/vagabond/monkey/kitchen_config.rb
|
187
|
+
- lib/vagabond/uploader/berkshelf.rb
|
188
|
+
- lib/vagabond/uploader/knife.rb
|
189
|
+
- lib/vagabond/uploader/librarian.rb
|
134
190
|
- lib/vagabond/constants.rb
|
135
191
|
- lib/vagabond/helpers.rb
|
192
|
+
- lib/vagabond/spec.rb
|
136
193
|
- lib/vagabond/helpers/cheffile_loader.rb
|
137
194
|
- lib/vagabond/internal_configuration.rb
|
138
195
|
- lib/vagabond/actions/up.rb
|
139
196
|
- lib/vagabond/actions/create.rb
|
140
197
|
- lib/vagabond/actions/provision.rb
|
141
198
|
- lib/vagabond/actions/status.rb
|
199
|
+
- lib/vagabond/actions/init.rb
|
142
200
|
- lib/vagabond/actions/start.rb
|
201
|
+
- lib/vagabond/actions/cluster.rb
|
143
202
|
- lib/vagabond/actions/thaw.rb
|
144
203
|
- lib/vagabond/actions/rebuild.rb
|
145
204
|
- lib/vagabond/actions/destroy.rb
|
146
205
|
- lib/vagabond/actions/freeze.rb
|
147
206
|
- lib/vagabond/actions/ssh.rb
|
207
|
+
- lib/vagabond/uploader.rb
|
148
208
|
- lib/vagabond.rb
|
149
209
|
- README.md
|
150
210
|
- vagabond.gemspec
|
@@ -1,28 +0,0 @@
|
|
1
|
-
actions :create, :delete, :clone
|
2
|
-
default_action :create
|
3
|
-
|
4
|
-
attribute :base_container, :kind_of => String
|
5
|
-
attribute :validation_client, :kind_of => String
|
6
|
-
attribute :validator_pem, :kind_of => String, :default => nil
|
7
|
-
attribute :server_uri, :kind_of => String
|
8
|
-
attribute :chef_environment, :kind_of => String, :default => '_default'
|
9
|
-
attribute :node_name, :kind_of => String
|
10
|
-
attribute :run_list, :kind_of => Array
|
11
|
-
attribute :chef_enabled, :kind_of => [TrueClass, FalseClass], :default => false
|
12
|
-
attribute :chef_retries, :kind_of => Fixnum, :default => 0
|
13
|
-
attribute :copy_data_bag_secret_file, :kind_of => [TrueClass, FalseClass], :default => false
|
14
|
-
attribute :data_bag_secret_file, :kind_of => String, :default => Chef::EncryptedDataBagItem::DEFAULT_SECRET_FILE
|
15
|
-
attribute :default_bridge, :kind_of => String
|
16
|
-
attribute :static_ip, :kind_of => String
|
17
|
-
attribute :static_netmask, :kind_of => String, :default => '255.255.255.0'
|
18
|
-
attribute :static_gateway, :kind_of => String
|
19
|
-
attribute :default_config, :kind_of => [TrueClass, FalseClass], :default => true
|
20
|
-
attribute :default_fstab, :kind_of => [TrueClass, FalseClass], :default => true
|
21
|
-
attribute :container_commands, :kind_of => Array, :default => []
|
22
|
-
attribute :initialize_commands, :kind_of => Array, :default => []
|
23
|
-
attribute :new_container, :kind_of => [TrueClass, FalseClass], :default => false
|
24
|
-
attribute :template, :kind_of => String, :default => 'ubuntu'
|
25
|
-
attribute :template_opts, :kind_of => Hash, :default => {}
|
26
|
-
attribute :_lxc
|
27
|
-
# TODO: We should ultimately have support for all these templates
|
28
|
-
#attribute :template, :equal_to => %w(busybox debian fedora opensuse sshd ubuntu ubuntu-cloud), :default => 'ubuntu'
|