boxgrinder-build 0.3.7 → 0.3.8
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.
- data/bin/boxgrinder-build +2 -2
- data/lib/boxgrinder-build/plugins/delivery/s3/s3-plugin.rb +1 -1
- data/lib/boxgrinder-build/plugins/os/base/rpm-based-os-plugin.rb +7 -2
- data/lib/boxgrinder-build/plugins/platform/ec2/ec2-plugin.rb +16 -1
- data/lib/boxgrinder-build/plugins/platform/vmware/vmware-plugin.rb +2 -2
- metadata +5 -5
data/bin/boxgrinder-build
CHANGED
|
@@ -26,7 +26,7 @@ require 'boxgrinder-core/helpers/log-helper'
|
|
|
26
26
|
require 'boxgrinder-build/helpers/plugin-helper'
|
|
27
27
|
require 'boxgrinder-build/appliance'
|
|
28
28
|
|
|
29
|
-
gem 'boxgrinder-core', '>= 0.0.
|
|
29
|
+
gem 'boxgrinder-core', '>= 0.0.11'
|
|
30
30
|
gem 'aws-s3', '>= 0.6.2'
|
|
31
31
|
gem 'amazon-ec2', '>= 0.9.6'
|
|
32
32
|
gem 'net-sftp', '>= 2.0.4'
|
|
@@ -40,7 +40,7 @@ gem 'commander', '>= 4.0.3'
|
|
|
40
40
|
#$stderr.reopen('/dev/null')
|
|
41
41
|
|
|
42
42
|
program :name, 'BoxGrinder Build'
|
|
43
|
-
program :version, '0.3.
|
|
43
|
+
program :version, '0.3.8'
|
|
44
44
|
program :description, 'A tool for building VM images from simple definition files.'
|
|
45
45
|
default_command :build
|
|
46
46
|
|
|
@@ -98,7 +98,7 @@ module BoxGrinder
|
|
|
98
98
|
when :cloudfront
|
|
99
99
|
upload_to_bucket(deliverables, :public_read)
|
|
100
100
|
when :ami
|
|
101
|
-
validate_plugin_config(['cert_file', 'key_file'])
|
|
101
|
+
validate_plugin_config(['cert_file', 'key_file', 'account_number'])
|
|
102
102
|
|
|
103
103
|
unless AMI_OSES[@appliance_config.os.name].include?(@appliance_config.os.version)
|
|
104
104
|
@log.error "You cannot convert selected image to AMI because of unsupported operating system: #{@appliance_config.os.name} #{@appliance_config.os.version}. Supported systems: #{supported_os}."
|
|
@@ -47,10 +47,15 @@ module BoxGrinder
|
|
|
47
47
|
@exec_helper.execute "sudo chmod 666 #{@deliverables[:metadata][:descriptor]}"
|
|
48
48
|
|
|
49
49
|
customize( @deliverables[:disk] ) do |guestfs, guestfs_helper|
|
|
50
|
+
# TODO is this really needed?
|
|
51
|
+
@log.debug "Uploading '/etc/resolv.conf'..."
|
|
52
|
+
guestfs.upload( "/etc/resolv.conf", "/etc/resolv.conf" )
|
|
53
|
+
@log.debug "'/etc/resolv.conf' uploaded."
|
|
54
|
+
|
|
50
55
|
@log.info "Executing post operations after build..."
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
@appliance_config.post
|
|
57
|
+
unless @appliance_config.post['base'].nil?
|
|
58
|
+
@appliance_config.post['base'].each do |cmd|
|
|
54
59
|
@log.debug "Executing #{cmd}"
|
|
55
60
|
guestfs.sh( cmd )
|
|
56
61
|
end
|
|
@@ -112,6 +112,11 @@ module BoxGrinder
|
|
|
112
112
|
umount_image(@deliverables[:disk], ec2_disk_mount_dir, ec2_mounts)
|
|
113
113
|
|
|
114
114
|
customize(@deliverables[:disk]) do |guestfs, guestfs_helper|
|
|
115
|
+
# TODO is this really needed?
|
|
116
|
+
@log.debug "Uploading '/etc/resolv.conf'..."
|
|
117
|
+
guestfs.upload( "/etc/resolv.conf", "/etc/resolv.conf" )
|
|
118
|
+
@log.debug "'/etc/resolv.conf' uploaded."
|
|
119
|
+
|
|
115
120
|
create_devices(guestfs)
|
|
116
121
|
upload_fstab(guestfs)
|
|
117
122
|
|
|
@@ -125,6 +130,16 @@ module BoxGrinder
|
|
|
125
130
|
install_additional_packages(guestfs)
|
|
126
131
|
change_configuration(guestfs)
|
|
127
132
|
|
|
133
|
+
unless @appliance_config.post['ec2'].nil?
|
|
134
|
+
@appliance_config.post['ec2'].each do |cmd|
|
|
135
|
+
@log.debug "Executing #{cmd}"
|
|
136
|
+
guestfs.sh( cmd )
|
|
137
|
+
end
|
|
138
|
+
@log.debug "Post commands from appliance definition file executed."
|
|
139
|
+
else
|
|
140
|
+
@log.debug "No commands specified, skipping."
|
|
141
|
+
end
|
|
142
|
+
|
|
128
143
|
# if @appliance_config.os.name.eql?("fedora") and @appliance_config.os.version.to_s.eql?("12")
|
|
129
144
|
# @log.debug "Downgrading udev package to use in EC2 environment..."
|
|
130
145
|
#
|
|
@@ -190,7 +205,7 @@ module BoxGrinder
|
|
|
190
205
|
offsets.each do |offset|
|
|
191
206
|
loop_device = get_loop_device
|
|
192
207
|
@exec_helper.execute("sudo losetup -o #{offset.to_s} #{loop_device} #{disk}")
|
|
193
|
-
label = @exec_helper.execute("e2label #{loop_device}").strip.chomp
|
|
208
|
+
label = @exec_helper.execute("sudo e2label #{loop_device}").strip.chomp
|
|
194
209
|
label = '/' if label == ''
|
|
195
210
|
mounts[label] = loop_device
|
|
196
211
|
end
|
|
@@ -56,9 +56,9 @@ module BoxGrinder
|
|
|
56
56
|
|
|
57
57
|
@log.debug "VMware image copied."
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
unless @appliance_config.post['vmware'].nil?
|
|
60
60
|
customize( @deliverables[:disk] ) do |guestfs, guestfs_helper|
|
|
61
|
-
@appliance_config.post
|
|
61
|
+
@appliance_config.post['vmware'].each do |cmd|
|
|
62
62
|
@log.debug "Executing #{cmd}"
|
|
63
63
|
guestfs.sh( cmd )
|
|
64
64
|
end
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 3
|
|
8
|
-
-
|
|
9
|
-
version: 0.3.
|
|
8
|
+
- 8
|
|
9
|
+
version: 0.3.8
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- BoxGrinder Project
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2010-
|
|
17
|
+
date: 2010-06-08 00:00:00 +02:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
@@ -27,8 +27,8 @@ dependencies:
|
|
|
27
27
|
segments:
|
|
28
28
|
- 0
|
|
29
29
|
- 0
|
|
30
|
-
-
|
|
31
|
-
version: 0.0.
|
|
30
|
+
- 11
|
|
31
|
+
version: 0.0.11
|
|
32
32
|
type: :runtime
|
|
33
33
|
version_requirements: *id001
|
|
34
34
|
- !ruby/object:Gem::Dependency
|