vagrant-lxc 0.3.4 → 0.4.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/CHANGELOG.md +34 -14
- data/Gemfile +5 -4
- data/Gemfile.lock +33 -21
- data/Guardfile +4 -15
- data/README.md +76 -158
- data/boxes/common/lxc-template +229 -0
- data/boxes/common/lxc.conf +49 -0
- data/boxes/common/metadata.json +4 -0
- data/boxes/debian/finalize +195 -0
- data/boxes/debian/lxc-template +13 -9
- data/boxes/ubuntu/finalize +368 -0
- data/boxes/ubuntu/lxc-template +1 -2
- data/development/Vagrantfile +10 -6
- data/development/site.pp +1 -1
- data/example/Vagrantfile +13 -22
- data/lib/vagrant-lxc/action/boot.rb +2 -0
- data/lib/vagrant-lxc/action/create.rb +1 -0
- data/lib/vagrant-lxc/action/handle_box_metadata.rb +15 -2
- data/lib/vagrant-lxc/action/setup_package_files.rb +3 -0
- data/lib/vagrant-lxc/driver.rb +4 -2
- data/lib/vagrant-lxc/driver/cli.rb +7 -2
- data/lib/vagrant-lxc/errors.rb +2 -2
- data/lib/vagrant-lxc/version.rb +1 -1
- data/locales/en.yml +9 -1
- data/spec/Vagrantfile +1 -4
- data/spec/acceptance/sanity_check_spec.rb +1 -4
- data/spec/unit/action/clear_forwarded_ports_spec.rb +4 -3
- data/spec/unit/action/compress_rootfs_spec.rb +5 -5
- data/spec/unit/action/forward_ports_spec.rb +5 -5
- data/spec/unit/action/handle_box_metadata_spec.rb +5 -5
- data/spec/unit/action/setup_package_files_spec.rb +32 -14
- data/spec/unit/driver/cli_spec.rb +4 -2
- data/spec/unit/driver_spec.rb +13 -11
- data/tasks/boxes.rake +26 -96
- data/tasks/boxes.v2.rake +181 -0
- metadata +8 -2
data/spec/unit/driver_spec.rb
CHANGED
@@ -9,24 +9,24 @@ describe Vagrant::LXC::Driver do
|
|
9
9
|
let(:unknown_container) { described_class.new('unknown', cli) }
|
10
10
|
let(:valid_container) { described_class.new('valid', cli) }
|
11
11
|
let(:new_container) { described_class.new(nil) }
|
12
|
-
let(:cli) {
|
12
|
+
let(:cli) { instance_double('Vagrant::LXC::Driver::CLI', list: ['valid']) }
|
13
13
|
|
14
14
|
it 'raises a ContainerNotFound error if an unknown container name gets provided' do
|
15
15
|
expect {
|
16
16
|
unknown_container.validate!
|
17
|
-
}.to raise_error
|
17
|
+
}.to raise_error
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'does not raise a ContainerNotFound error if a valid container name gets provided' do
|
21
21
|
expect {
|
22
22
|
valid_container.validate!
|
23
|
-
}.
|
23
|
+
}.not_to raise_error
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'does not raise a ContainerNotFound error if nil is provider as name' do
|
27
27
|
expect {
|
28
28
|
new_container.validate!
|
29
|
-
}.
|
29
|
+
}.not_to raise_error
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -35,14 +35,15 @@ describe Vagrant::LXC::Driver do
|
|
35
35
|
let(:template_name) { 'auto-assigned-template-id' }
|
36
36
|
let(:template_path) { '/path/to/lxc-template-from-box' }
|
37
37
|
let(:template_opts) { {'--some' => 'random-option'} }
|
38
|
+
let(:config_file) { '/path/to/lxc-config-from-box' }
|
38
39
|
let(:rootfs_tarball) { '/path/to/cache/rootfs.tar.gz' }
|
39
|
-
let(:cli) {
|
40
|
+
let(:cli) { instance_double('Vagrant::LXC::Driver::CLI', :create => true, :name= => true) }
|
40
41
|
|
41
42
|
subject { described_class.new(nil, cli) }
|
42
43
|
|
43
44
|
before do
|
44
45
|
subject.stub(:import_template).and_yield(template_name)
|
45
|
-
subject.create name, template_path, template_opts
|
46
|
+
subject.create name, template_path, config_file, template_opts
|
46
47
|
end
|
47
48
|
|
48
49
|
it 'sets the cli object container name' do
|
@@ -52,13 +53,14 @@ describe Vagrant::LXC::Driver do
|
|
52
53
|
it 'creates container with the right arguments' do
|
53
54
|
cli.should have_received(:create).with(
|
54
55
|
template_name,
|
56
|
+
config_file,
|
55
57
|
template_opts
|
56
58
|
)
|
57
59
|
end
|
58
60
|
end
|
59
61
|
|
60
62
|
describe 'destruction' do
|
61
|
-
let(:cli) {
|
63
|
+
let(:cli) { instance_double('Vagrant::LXC::Driver::CLI', destroy: true) }
|
62
64
|
|
63
65
|
subject { described_class.new('name', cli) }
|
64
66
|
|
@@ -72,7 +74,7 @@ describe Vagrant::LXC::Driver do
|
|
72
74
|
describe 'start' do
|
73
75
|
let(:customizations) { [['a', '1'], ['b', '2']] }
|
74
76
|
let(:internal_customization) { ['internal', 'customization'] }
|
75
|
-
let(:cli) {
|
77
|
+
let(:cli) { instance_double('Vagrant::LXC::Driver::CLI', start: true) }
|
76
78
|
|
77
79
|
subject { described_class.new('name', cli) }
|
78
80
|
|
@@ -92,7 +94,7 @@ describe Vagrant::LXC::Driver do
|
|
92
94
|
end
|
93
95
|
|
94
96
|
describe 'halt' do
|
95
|
-
let(:cli) {
|
97
|
+
let(:cli) { instance_double('Vagrant::LXC::Driver::CLI', shutdown: true) }
|
96
98
|
|
97
99
|
subject { described_class.new('name', cli) }
|
98
100
|
|
@@ -120,7 +122,7 @@ describe Vagrant::LXC::Driver do
|
|
120
122
|
|
121
123
|
describe 'state' do
|
122
124
|
let(:cli_state) { :something }
|
123
|
-
let(:cli) {
|
125
|
+
let(:cli) { instance_double('Vagrant::LXC::Driver::CLI', state: cli_state) }
|
124
126
|
|
125
127
|
subject { described_class.new('name', cli) }
|
126
128
|
|
@@ -133,7 +135,7 @@ describe Vagrant::LXC::Driver do
|
|
133
135
|
# This ip is set on the sample-ip-addr-output fixture
|
134
136
|
let(:ip) { "10.0.254.137" }
|
135
137
|
let(:ifconfig_output) { File.read('spec/fixtures/sample-ip-addr-output') }
|
136
|
-
let(:cli) {
|
138
|
+
let(:cli) { instance_double('Vagrant::LXC::Driver::CLI', :attach => ifconfig_output) }
|
137
139
|
|
138
140
|
subject { described_class.new('name', cli) }
|
139
141
|
|
data/tasks/boxes.rake
CHANGED
@@ -1,50 +1,11 @@
|
|
1
1
|
require 'pathname'
|
2
2
|
require 'rake/tasklib'
|
3
|
+
load 'tasks/boxes.v2.rake'
|
3
4
|
|
4
|
-
class
|
5
|
-
include ::Rake::DSL
|
6
|
-
|
7
|
-
attr_reader :name
|
8
|
-
|
9
|
-
def initialize(name, distrib, release, arch, opts = {})
|
10
|
-
@name = name
|
11
|
-
@distrib = distrib
|
12
|
-
@release = release.to_s
|
13
|
-
@arch = arch.to_s
|
14
|
-
@install_chef = opts.fetch(:chef, true)
|
15
|
-
@install_puppet = opts.fetch(:puppet, true)
|
16
|
-
@install_babushka = opts.fetch(:babushka, true)
|
17
|
-
@file = opts[:file] || default_box_file
|
18
|
-
@scripts_path = Pathname(Dir.pwd).join('boxes')
|
19
|
-
|
20
|
-
desc "Build an #{distrib.upcase} #{release} #{arch} box" unless
|
21
|
-
::Rake.application.last_comment
|
22
|
-
task name do
|
23
|
-
RakeFileUtils.send(:verbose, true) do
|
24
|
-
build
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def default_box_file
|
30
|
-
require 'time'
|
31
|
-
"lxc-#{@release}-#{@arch}-#{Date.today}.box"
|
32
|
-
end
|
33
|
-
|
34
|
-
def run(script_name, *args)
|
35
|
-
unless (script = @scripts_path.join(@distrib, script_name)).readable?
|
36
|
-
script = @scripts_path.join('common', script_name)
|
37
|
-
end
|
38
|
-
|
39
|
-
if script.readable?
|
40
|
-
sh "sudo #{script} #{args.join(' ')}"
|
41
|
-
else
|
42
|
-
STDERR.puts "cannot execute #{install_path} (not found?)"
|
43
|
-
exit 1
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
5
|
+
class BuildGenericBoxTaskV3 < BuildGenericBoxTaskV2
|
47
6
|
def build
|
7
|
+
require 'vagrant'
|
8
|
+
|
48
9
|
check_if_box_has_been_built!
|
49
10
|
|
50
11
|
FileUtils.mkdir_p 'boxes/temp' unless File.exist? 'base/temp'
|
@@ -55,6 +16,7 @@ class BuildGenericBoxTask < ::Rake::TaskLib
|
|
55
16
|
Dir.chdir 'boxes/temp' do
|
56
17
|
download
|
57
18
|
install_cfg_engines
|
19
|
+
finalize
|
58
20
|
prepare_package_contents pwd
|
59
21
|
sh 'sudo rm -rf rootfs'
|
60
22
|
sh "tar -czf tmp-package.box ./*"
|
@@ -65,64 +27,34 @@ class BuildGenericBoxTask < ::Rake::TaskLib
|
|
65
27
|
sh "rm -rf boxes/temp"
|
66
28
|
end
|
67
29
|
|
68
|
-
def
|
69
|
-
|
70
|
-
|
71
|
-
puts 'Box has been built already!'
|
72
|
-
exit 1
|
73
|
-
end
|
74
|
-
|
75
|
-
def check_for_partially_built_box!
|
76
|
-
return unless Dir.entries('boxes/temp').size > 2
|
77
|
-
|
78
|
-
puts 'There is a partially built box under ' +
|
79
|
-
File.expand_path('./boxes/temp') +
|
80
|
-
', please remove it before building a new box'
|
81
|
-
exit 1
|
82
|
-
end
|
83
|
-
|
84
|
-
def download
|
85
|
-
run 'download', @arch, @release
|
86
|
-
end
|
87
|
-
|
88
|
-
def install_cfg_engines
|
89
|
-
[ :puppet, :chef, :babushka ].each do |cfg_engine|
|
90
|
-
next unless instance_variable_get :"@install_#{cfg_engine}"
|
91
|
-
script_name = "install-#{cfg_engine}"
|
92
|
-
run script_name
|
93
|
-
end
|
30
|
+
def finalize
|
31
|
+
auth_key = Vagrant.source_root.join('keys', 'vagrant.pub').expand_path.to_s
|
32
|
+
run 'finalize', @arch, @release, auth_key
|
94
33
|
end
|
95
34
|
|
96
35
|
def prepare_package_contents(pwd)
|
97
36
|
run 'cleanup'
|
98
37
|
sh 'sudo rm -f rootfs.tar.gz'
|
99
38
|
sh 'sudo tar --numeric-owner -czf rootfs.tar.gz ./rootfs/*'
|
100
|
-
sh "sudo chown #{ENV['USER']}:#{
|
101
|
-
sh "cp #{pwd}/boxes
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
def compile_metadata(pwd)
|
106
|
-
metadata = File.read("#{pwd}/boxes/#{@distrib}/metadata.json.template")
|
107
|
-
metadata.gsub!('ARCH', @arch)
|
108
|
-
metadata.gsub!('RELEASE', @release)
|
109
|
-
File.open('metadata.json', 'w') { |f| f.print metadata }
|
39
|
+
sh "sudo chown #{ENV['USER']}:#{`id -gn`.strip} rootfs.tar.gz"
|
40
|
+
sh "cp #{pwd}/boxes/common/lxc-template ."
|
41
|
+
sh "cp #{pwd}/boxes/common/lxc.conf ."
|
42
|
+
sh "cp #{pwd}/boxes/common/metadata.json ."
|
110
43
|
end
|
111
44
|
end
|
112
45
|
|
113
|
-
class
|
46
|
+
class BuildDebianBoxTaskV3 < BuildGenericBoxTaskV3
|
114
47
|
def initialize(name, release, arch, opts = {})
|
115
48
|
super(name, 'debian', release, arch, opts)
|
116
49
|
end
|
117
50
|
end
|
118
51
|
|
119
|
-
class
|
52
|
+
class BuildUbuntuBoxTaskV3 < BuildGenericBoxTaskV3
|
120
53
|
def initialize(name, release, arch, opts = {})
|
121
54
|
super(name, 'ubuntu', release, arch, opts)
|
122
55
|
end
|
123
56
|
end
|
124
57
|
|
125
|
-
chef = ENV['CHEF'] == '1'
|
126
58
|
puppet = ENV['PUPPET'] == '1'
|
127
59
|
babushka = ENV['BABUSHKA'] == '1'
|
128
60
|
|
@@ -131,43 +63,41 @@ namespace :boxes do
|
|
131
63
|
namespace :build do
|
132
64
|
|
133
65
|
desc 'Build an Ubuntu Precise 64 bits box'
|
134
|
-
|
66
|
+
BuildUbuntuBoxTaskV3.
|
135
67
|
new(:precise64,
|
136
|
-
:precise, 'amd64',
|
68
|
+
:precise, 'amd64', puppet: puppet, babushka: babushka)
|
137
69
|
|
138
70
|
desc 'Build an Ubuntu Quantal 64 bits box'
|
139
|
-
|
71
|
+
BuildUbuntuBoxTaskV3.
|
140
72
|
new(:quantal64,
|
141
|
-
:quantal, 'amd64',
|
73
|
+
:quantal, 'amd64', puppet: puppet, babushka: babushka)
|
142
74
|
|
143
|
-
# FIXME: Find out how to install chef on raring
|
144
75
|
desc 'Build an Ubuntu Raring 64 bits box'
|
145
|
-
|
76
|
+
BuildUbuntuBoxTaskV3.
|
146
77
|
new(:raring64,
|
147
|
-
:raring, 'amd64',
|
78
|
+
:raring, 'amd64', puppet: puppet, babushka: babushka)
|
148
79
|
|
149
80
|
desc 'Build all Ubuntu boxes'
|
150
81
|
task :all => %w( precise64 quantal64 raring64 )
|
151
82
|
end
|
152
83
|
end
|
153
84
|
|
154
|
-
# FIXME: Find out how to install chef on debian boxes
|
155
85
|
namespace :debian do
|
156
86
|
namespace :build do
|
157
87
|
desc 'Build an Debian Squeeze 64 bits box'
|
158
|
-
|
88
|
+
BuildDebianBoxTaskV3.
|
159
89
|
new(:squeeze64,
|
160
|
-
:squeeze, 'amd64',
|
90
|
+
:squeeze, 'amd64', puppet: puppet, babushka: babushka)
|
161
91
|
|
162
92
|
desc 'Build an Debian Wheezy 64 bits box'
|
163
|
-
|
93
|
+
BuildDebianBoxTaskV3.
|
164
94
|
new(:wheezy64,
|
165
|
-
:wheezy, 'amd64',
|
95
|
+
:wheezy, 'amd64', puppet: puppet, babushka: babushka)
|
166
96
|
|
167
97
|
desc 'Build an Debian Sid/unstable 64 bits box'
|
168
|
-
|
98
|
+
BuildDebianBoxTaskV3.
|
169
99
|
new(:sid64,
|
170
|
-
:sid, 'amd64',
|
100
|
+
:sid, 'amd64', puppet: puppet, babushka: babushka)
|
171
101
|
|
172
102
|
desc 'Build all Debian boxes'
|
173
103
|
task :all => %w( squeeze64 wheezy64 sid64 )
|
data/tasks/boxes.v2.rake
ADDED
@@ -0,0 +1,181 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'rake/tasklib'
|
3
|
+
|
4
|
+
class BuildGenericBoxTaskV2 < ::Rake::TaskLib
|
5
|
+
include ::Rake::DSL
|
6
|
+
|
7
|
+
attr_reader :name
|
8
|
+
|
9
|
+
def initialize(name, distrib, release, arch, opts = {})
|
10
|
+
@name = name
|
11
|
+
@distrib = distrib
|
12
|
+
@release = release.to_s
|
13
|
+
@arch = arch.to_s
|
14
|
+
@install_chef = opts.fetch(:chef, false)
|
15
|
+
@install_puppet = opts.fetch(:puppet, true)
|
16
|
+
@install_babushka = opts.fetch(:babushka, true)
|
17
|
+
@file = opts[:file] || default_box_file
|
18
|
+
@scripts_path = Pathname(Dir.pwd).join('boxes')
|
19
|
+
|
20
|
+
desc "Build an #{distrib.upcase} #{release} #{arch} box" unless
|
21
|
+
::Rake.application.last_comment
|
22
|
+
task name do
|
23
|
+
RakeFileUtils.send(:verbose, true) do
|
24
|
+
build
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def default_box_file
|
30
|
+
require 'time'
|
31
|
+
"lxc-#{@release}-#{@arch}-#{Date.today}.box"
|
32
|
+
end
|
33
|
+
|
34
|
+
def run(script_name, *args)
|
35
|
+
unless (script = @scripts_path.join(@distrib, script_name)).readable?
|
36
|
+
script = @scripts_path.join('common', script_name)
|
37
|
+
end
|
38
|
+
|
39
|
+
if script.readable?
|
40
|
+
sh "sudo #{script} #{args.join(' ')}"
|
41
|
+
else
|
42
|
+
STDERR.puts "cannot execute #{script_name} (not found?)"
|
43
|
+
exit 1
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def build
|
48
|
+
check_if_box_has_been_built!
|
49
|
+
|
50
|
+
FileUtils.mkdir_p 'boxes/temp' unless File.exist? 'base/temp'
|
51
|
+
check_for_partially_built_box!
|
52
|
+
|
53
|
+
pwd = Dir.pwd
|
54
|
+
sh 'mkdir -p boxes/temp/'
|
55
|
+
Dir.chdir 'boxes/temp' do
|
56
|
+
download
|
57
|
+
install_cfg_engines
|
58
|
+
prepare_package_contents pwd
|
59
|
+
sh 'sudo rm -rf rootfs'
|
60
|
+
sh "tar -czf tmp-package.box ./*"
|
61
|
+
end
|
62
|
+
|
63
|
+
sh 'mkdir -p boxes/output'
|
64
|
+
sh "cp boxes/temp/tmp-package.box boxes/output/#{@file}"
|
65
|
+
sh "rm -rf boxes/temp"
|
66
|
+
end
|
67
|
+
|
68
|
+
def check_if_box_has_been_built!
|
69
|
+
return unless File.exists?("./boxes/output/#{@file}")
|
70
|
+
|
71
|
+
puts 'Box has been built already!'
|
72
|
+
exit 1
|
73
|
+
end
|
74
|
+
|
75
|
+
def check_for_partially_built_box!
|
76
|
+
return unless Dir.entries('boxes/temp').size > 2
|
77
|
+
|
78
|
+
puts 'There is a partially built box under ' +
|
79
|
+
File.expand_path('./boxes/temp') +
|
80
|
+
', please remove it before building a new box'
|
81
|
+
exit 1
|
82
|
+
end
|
83
|
+
|
84
|
+
def download
|
85
|
+
run 'download', @arch, @release
|
86
|
+
end
|
87
|
+
|
88
|
+
def install_cfg_engines
|
89
|
+
[ :puppet, :chef, :babushka ].each do |cfg_engine|
|
90
|
+
next unless instance_variable_get :"@install_#{cfg_engine}"
|
91
|
+
script_name = "install-#{cfg_engine}"
|
92
|
+
run script_name
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def prepare_package_contents(pwd)
|
97
|
+
run 'cleanup'
|
98
|
+
sh 'sudo rm -f rootfs.tar.gz'
|
99
|
+
sh 'sudo tar --numeric-owner -czf rootfs.tar.gz ./rootfs/*'
|
100
|
+
sh "sudo chown #{ENV['USER']}:#{`id -gn`.strip} rootfs.tar.gz"
|
101
|
+
sh "cp #{pwd}/boxes/#{@distrib}/lxc-template ."
|
102
|
+
compile_metadata(pwd)
|
103
|
+
end
|
104
|
+
|
105
|
+
def compile_metadata(pwd)
|
106
|
+
metadata = File.read("#{pwd}/boxes/#{@distrib}/metadata.json.template")
|
107
|
+
metadata.gsub!('ARCH', @arch)
|
108
|
+
metadata.gsub!('RELEASE', @release)
|
109
|
+
File.open('metadata.json', 'w') { |f| f.print metadata }
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
class BuildDebianBoxTaskV2 < BuildGenericBoxTaskV2
|
114
|
+
def initialize(name, release, arch, opts = {})
|
115
|
+
super(name, 'debian', release, arch, opts)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
class BuildUbuntuBoxTaskV2 < BuildGenericBoxTaskV2
|
120
|
+
def initialize(name, release, arch, opts = {})
|
121
|
+
super(name, 'ubuntu', release, arch, opts)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
chef = ENV['CHEF'] == '1'
|
126
|
+
puppet = ENV['PUPPET'] == '1'
|
127
|
+
babushka = ENV['BABUSHKA'] == '1'
|
128
|
+
|
129
|
+
namespace :boxes do
|
130
|
+
namespace :v2 do
|
131
|
+
namespace :ubuntu do
|
132
|
+
namespace :build do
|
133
|
+
|
134
|
+
desc 'Build an Ubuntu Precise 64 bits box'
|
135
|
+
BuildUbuntuBoxTaskV2.
|
136
|
+
new(:precise64,
|
137
|
+
:precise, 'amd64', chef: chef, puppet: puppet, babushka: babushka)
|
138
|
+
|
139
|
+
desc 'Build an Ubuntu Quantal 64 bits box'
|
140
|
+
BuildUbuntuBoxTaskV2.
|
141
|
+
new(:quantal64,
|
142
|
+
:quantal, 'amd64', chef: chef, puppet: puppet, babushka: babushka)
|
143
|
+
|
144
|
+
# FIXME: Find out how to install chef on raring
|
145
|
+
desc 'Build an Ubuntu Raring 64 bits box'
|
146
|
+
BuildUbuntuBoxTaskV2.
|
147
|
+
new(:raring64,
|
148
|
+
:raring, 'amd64', chef: chef, puppet: puppet, babushka: babushka)
|
149
|
+
|
150
|
+
desc 'Build all Ubuntu boxes'
|
151
|
+
task :all => %w( precise64 quantal64 raring64 )
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
# FIXME: Find out how to install chef on debian boxes
|
156
|
+
namespace :debian do
|
157
|
+
namespace :build do
|
158
|
+
desc 'Build an Debian Squeeze 64 bits box'
|
159
|
+
BuildDebianBoxTaskV2.
|
160
|
+
new(:squeeze64,
|
161
|
+
:squeeze, 'amd64', chef: false, puppet: puppet, babushka: babushka)
|
162
|
+
|
163
|
+
desc 'Build an Debian Wheezy 64 bits box'
|
164
|
+
BuildDebianBoxTaskV2.
|
165
|
+
new(:wheezy64,
|
166
|
+
:wheezy, 'amd64', chef: false, puppet: puppet, babushka: babushka)
|
167
|
+
|
168
|
+
desc 'Build an Debian Sid/unstable 64 bits box'
|
169
|
+
BuildDebianBoxTaskV2.
|
170
|
+
new(:sid64,
|
171
|
+
:sid, 'amd64', chef: false, puppet: puppet, babushka: babushka)
|
172
|
+
|
173
|
+
desc 'Build all Debian boxes'
|
174
|
+
task :all => %w( squeeze64 wheezy64 sid64 )
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
desc 'Build all base boxes for release'
|
179
|
+
task :build_all => %w( ubuntu:build:all debian:build:all )
|
180
|
+
end
|
181
|
+
end
|