boxes 3.3.1 → 3.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rspec +2 -0
- data/.rubocop.yml +21 -11
- data/.ruby-version +1 -1
- data/CHANGELOG.md +8 -0
- data/lib/boxes/subprocess.rb +5 -8
- data/lib/boxes/version.rb +1 -1
- data/scripts/postinstall.sh +56 -12
- data/scripts/purge.sh +0 -19
- data/spec/boxes/subprocess_spec.rb +15 -14
- data/templates/debian/stretch64.erb +2 -2
- data/templates/ubuntu/bionic64.erb +64 -0
- data/templates/ubuntu/preseed.cfg +1 -1
- data/templates/ubuntu/xenial64.erb +2 -2
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b749a9a33b2dda40aad6917ca20448e445bebea00260a9b00dcc4f5f4548ff0d
|
4
|
+
data.tar.gz: aec4f6c96166beffb081e7780a60a9d26290c1b4bd85a61f6770c42b8a89c1ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a98de9c699d352be12dbda5094fa675c5c089ffb41b6abd8b6d1c3dfe1e62771738bd9eb2c4a869eecfe3cf78de81cca3247a3b451c6a2735e0b3f9019c87c57
|
7
|
+
data.tar.gz: 27e2ee3e684309739e70945b84799e9c128c492b5a4a0cbceed3ce1fd371875715808a4777ffadaca221cba705504122a14b1934759ac69b1a7a884c24e51d82
|
data/.rspec
ADDED
data/.rubocop.yml
CHANGED
@@ -352,8 +352,18 @@ Style/TrailingCommaInArguments:
|
|
352
352
|
- no_comma
|
353
353
|
Enabled: true
|
354
354
|
|
355
|
-
Style/
|
356
|
-
Description: 'Checks for trailing comma in array
|
355
|
+
Style/TrailingCommaInArrayLiteral:
|
356
|
+
Description: 'Checks for trailing comma in array literals.'
|
357
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
|
358
|
+
EnforcedStyleForMultiline: comma
|
359
|
+
SupportedStylesForMultiline:
|
360
|
+
- comma
|
361
|
+
- consistent_comma
|
362
|
+
- no_comma
|
363
|
+
Enabled: true
|
364
|
+
|
365
|
+
Style/TrailingCommaInHashLiteral:
|
366
|
+
Description: 'Checks for trailing comma in hash literals.'
|
357
367
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
|
358
368
|
EnforcedStyleForMultiline: comma
|
359
369
|
SupportedStylesForMultiline:
|
@@ -398,6 +408,13 @@ Layout/AlignParameters:
|
|
398
408
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
|
399
409
|
Enabled: false
|
400
410
|
|
411
|
+
Layout/ConditionPosition:
|
412
|
+
Description: >-
|
413
|
+
Checks for condition placed in a confusing position relative to
|
414
|
+
the keyword.
|
415
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
|
416
|
+
Enabled: false
|
417
|
+
|
401
418
|
Layout/DotPosition:
|
402
419
|
Description: 'Checks the position of the dot in multi-line method calls.'
|
403
420
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
|
@@ -450,13 +467,6 @@ Lint/CircularArgumentReference:
|
|
450
467
|
Description: "Don't refer to the keyword argument in the default value."
|
451
468
|
Enabled: false
|
452
469
|
|
453
|
-
Lint/ConditionPosition:
|
454
|
-
Description: >-
|
455
|
-
Checks for condition placed in a confusing position relative to
|
456
|
-
the keyword.
|
457
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
|
458
|
-
Enabled: false
|
459
|
-
|
460
470
|
Lint/DeprecatedClassMethods:
|
461
471
|
Description: 'Check for deprecated class method calls.'
|
462
472
|
Enabled: false
|
@@ -482,7 +492,7 @@ Lint/HandleExceptions:
|
|
482
492
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
|
483
493
|
Enabled: false
|
484
494
|
|
485
|
-
Lint/
|
495
|
+
Lint/LiteralAsCondition:
|
486
496
|
Description: 'Checks of literals used in conditions.'
|
487
497
|
Enabled: false
|
488
498
|
|
@@ -523,7 +533,7 @@ Lint/UnderscorePrefixedVariableName:
|
|
523
533
|
Description: 'Do not use prefix `_` for a variable that is used.'
|
524
534
|
Enabled: false
|
525
535
|
|
526
|
-
Lint/
|
536
|
+
Lint/UnneededCopDisableDirective:
|
527
537
|
Description: >-
|
528
538
|
Checks for rubocop:disable comments that can be removed.
|
529
539
|
Note: this cop is not disabled when disabling all cops.
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.
|
1
|
+
ruby-2.5.3
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 3.4.0 (02/12/2018)
|
4
|
+
|
5
|
+
* Update Debian Stretch ISO to 9.6.0.
|
6
|
+
* Update Ubuntu Xenial ISO image to 16.04.4.
|
7
|
+
* Update Ubuntu Bionic ISO to 18.04.1.
|
8
|
+
* Remove unnecessary thread block.
|
9
|
+
* Avoid printing variables which are nil.
|
10
|
+
|
3
11
|
## 3.3.1 (27/04/2018)
|
4
12
|
|
5
13
|
* Refresh Ubuntu Xenial ISO image. ([55])
|
data/lib/boxes/subprocess.rb
CHANGED
@@ -18,14 +18,11 @@ module Boxes
|
|
18
18
|
Open3.popen3(command) do |_stdin, stdout, stderr, thread|
|
19
19
|
# read each stream from a new thread
|
20
20
|
{ out: stdout, err: stderr }.each do |key, stream|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
else
|
27
|
-
yield nil, line, thread if block_given?
|
28
|
-
end
|
21
|
+
stream.each_line do |line|
|
22
|
+
if key == :out
|
23
|
+
yield line, nil, thread if block_given?
|
24
|
+
elsif key == :err
|
25
|
+
yield nil, line, thread if block_given?
|
29
26
|
end
|
30
27
|
end
|
31
28
|
end
|
data/lib/boxes/version.rb
CHANGED
data/scripts/postinstall.sh
CHANGED
@@ -1,4 +1,10 @@
|
|
1
|
-
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
##
|
4
|
+
# Post install configuration, preparing the box for usage
|
5
|
+
#
|
6
|
+
# Originally based upon Mitchell's old basebox example
|
7
|
+
##
|
2
8
|
|
3
9
|
# mark the build time
|
4
10
|
date > /etc/vagrant_box_build_time
|
@@ -34,17 +40,55 @@ curl -Lo /home/vagrant/.ssh/authorized_keys \
|
|
34
40
|
chmod 0600 /home/vagrant/.ssh/authorized_keys
|
35
41
|
chown -R vagrant:vagrant /home/vagrant/.ssh
|
36
42
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
disable_automatic_udev_rules() {
|
44
|
+
echo "Disabling automatic udev rules for network interfaces..."
|
45
|
+
|
46
|
+
# source: http://6.ptmc.org/164/
|
47
|
+
rm -f /etc/udev/rules.d/70-persistent-net.rules
|
48
|
+
ln -s /dev/null /etc/udev/rules.d/70-persistent-net.rules
|
49
|
+
rm -f /lib/udev/rules.d/75-persistent-net-generator.rules
|
50
|
+
rm -rf /dev/.udev/ /var/lib/dhcp/*
|
51
|
+
}
|
52
|
+
|
53
|
+
disable_predictable_interface_names() {
|
54
|
+
echo "Disabling predictable interface names..."
|
55
|
+
|
56
|
+
sed -i 's/en[[:alnum:]]*/eth0/g' /etc/network/interfaces
|
57
|
+
sed -ie 's/GRUB_CMDLINE_LINUX="\(.*\)"/GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 \1"/g' /etc/default/grub
|
58
|
+
update-grub
|
59
|
+
}
|
60
|
+
|
61
|
+
configure_netplan() {
|
62
|
+
echo "Creating DHCP netplan config for eth0..."
|
63
|
+
|
64
|
+
cat <<-EOF >/etc/netplan/01-netcfg.yaml;
|
65
|
+
network:
|
66
|
+
version: 2
|
67
|
+
ethernets:
|
68
|
+
eth0:
|
69
|
+
dhcp4: true
|
70
|
+
EOF
|
71
|
+
}
|
72
|
+
|
73
|
+
distribution=$(lsb_release -si)
|
74
|
+
version=$(lsb_release -sr)
|
75
|
+
major_version=$(echo "$version" | awk -F . '{print $1}')
|
76
|
+
|
77
|
+
if [ "$distribution" = 'Ubuntu' ]; then
|
78
|
+
if [ "$major_version" -ge "16" ]; then
|
79
|
+
disable_predictable_interface_names
|
80
|
+
fi
|
81
|
+
|
82
|
+
if [ "$major_version" -ge "18" ]; then
|
83
|
+
configure_netplan
|
84
|
+
fi
|
85
|
+
elif [ "$distribution" = 'Debian' ]; then
|
86
|
+
if [ "$major_version" -ge "8" ]; then
|
87
|
+
disable_predictable_interface_names
|
88
|
+
fi
|
89
|
+
fi
|
90
|
+
|
91
|
+
disable_automatic_udev_rules
|
46
92
|
|
47
93
|
# clean up any artifacts
|
48
94
|
rm -f /home/vagrant/shutdown.sh
|
49
|
-
|
50
|
-
exit
|
data/scripts/purge.sh
CHANGED
@@ -6,25 +6,6 @@
|
|
6
6
|
# Based on: https://gist.github.com/adrienbrault/3775253
|
7
7
|
##
|
8
8
|
|
9
|
-
# tidy up DCHP leases
|
10
|
-
echo "Cleaning up dhcp..."
|
11
|
-
rm /var/lib/dhcp/*
|
12
|
-
|
13
|
-
# make sure Udev doesn't block our network
|
14
|
-
# except on systemd systems where this isn't used
|
15
|
-
# http://6.ptmc.org/?p=164
|
16
|
-
case $(lsb_release -cs) in
|
17
|
-
"wily" | "xenial")
|
18
|
-
;;
|
19
|
-
*)
|
20
|
-
echo "Cleaning up udev..."
|
21
|
-
rm /etc/udev/rules.d/70-persistent-net.rules
|
22
|
-
mkdir /etc/udev/rules.d/70-persistent-net.rules
|
23
|
-
rm -rf /dev/.udev/
|
24
|
-
rm /lib/udev/rules.d/75-persistent-net-generator.rules
|
25
|
-
;;
|
26
|
-
esac
|
27
|
-
|
28
9
|
# clean up apt
|
29
10
|
echo "Cleaning up apt..."
|
30
11
|
apt-get -qy autoremove
|
@@ -1,36 +1,37 @@
|
|
1
|
-
require
|
1
|
+
require "spec_helper"
|
2
2
|
|
3
3
|
describe Boxes::Subprocess do
|
4
|
-
|
5
|
-
File.expand_path("../../support/subprocess_command.sh", __FILE__).
|
6
|
-
shellescape
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'runs a command and yields a block' do
|
4
|
+
it "runs a command and yields a block" do
|
10
5
|
expect { |b| Boxes::Subprocess.run(command, &b) }.to yield_control
|
11
6
|
end
|
12
7
|
|
13
|
-
it
|
14
|
-
total_stdout =
|
8
|
+
it "runs a command and returns stdout" do
|
9
|
+
total_stdout = ""
|
15
10
|
Boxes::Subprocess.run(command) do |stdout, _stderr, _thread|
|
16
|
-
total_stdout << stdout
|
11
|
+
total_stdout << stdout if stdout
|
17
12
|
end
|
18
13
|
|
19
14
|
expect(total_stdout).to eq "A happy output.\n"
|
20
15
|
end
|
21
16
|
|
22
|
-
it
|
23
|
-
total_stderr =
|
17
|
+
it "runs a command and returns stderr" do
|
18
|
+
total_stderr = ""
|
24
19
|
Boxes::Subprocess.run(command) do |_stdout, stderr, _thread|
|
25
|
-
total_stderr << stderr
|
20
|
+
total_stderr << stderr if stderr
|
26
21
|
end
|
27
22
|
|
28
23
|
expect(total_stderr).to eq "An unhappy output.\n"
|
29
24
|
end
|
30
25
|
|
31
|
-
it
|
26
|
+
it "returns a status code" do
|
32
27
|
status = Boxes::Subprocess.run(command) { |_stdout, _stderr, _thread| }
|
33
28
|
|
34
29
|
expect(status.exitstatus).to eq 5
|
35
30
|
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def command
|
35
|
+
File.expand_path("../support/subprocess_command.sh", __dir__).shellescape
|
36
|
+
end
|
36
37
|
end
|
@@ -25,8 +25,8 @@
|
|
25
25
|
<%- end -%>
|
26
26
|
"headless": true,
|
27
27
|
|
28
|
-
"iso_url": "https://cdimage.debian.org/debian-cd/
|
29
|
-
"iso_checksum": "
|
28
|
+
"iso_url": "https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.6.0-amd64-netinst.iso",
|
29
|
+
"iso_checksum": "c51d84019c3637ae9d12aa6658ea8c613860c776bd84c6a71eaaf765a0dd60fe",
|
30
30
|
"iso_checksum_type": "sha256",
|
31
31
|
|
32
32
|
"ssh_username": "vagrant",
|
@@ -0,0 +1,64 @@
|
|
1
|
+
{
|
2
|
+
"provisioners": [
|
3
|
+
{
|
4
|
+
"type": "shell",
|
5
|
+
"scripts": [
|
6
|
+
"scripts/postinstall.sh",
|
7
|
+
"scripts/vmtools.sh",
|
8
|
+
<%- @scripts.each do |script| -%>
|
9
|
+
"scripts/<%= script %>",
|
10
|
+
<%- end -%>
|
11
|
+
"scripts/purge.sh"
|
12
|
+
],
|
13
|
+
"execute_command": "echo 'vagrant' | {{ .Vars }} sudo -E -S bash '{{ .Path }}'"
|
14
|
+
}
|
15
|
+
],
|
16
|
+
|
17
|
+
"builders": [
|
18
|
+
{
|
19
|
+
"name": "<%= @name %>",
|
20
|
+
"type": "<%= @provider %>-iso",
|
21
|
+
<%- if @provider == "vmware" -%>
|
22
|
+
"guest_os_type": "ubuntu-64",
|
23
|
+
"tools_upload_flavor": "linux",
|
24
|
+
<%- else -%>
|
25
|
+
"guest_os_type": "Ubuntu_64",
|
26
|
+
<%- end -%>
|
27
|
+
"headless": true,
|
28
|
+
|
29
|
+
"iso_url": "http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04.1-server-amd64.iso",
|
30
|
+
"iso_checksum": "a5b0ea5918f850124f3d72ef4b85bda82f0fcd02ec721be19c1a6952791c8ee8",
|
31
|
+
"iso_checksum_type": "sha256",
|
32
|
+
|
33
|
+
"ssh_username": "vagrant",
|
34
|
+
"ssh_password": "vagrant",
|
35
|
+
"ssh_timeout": "15m",
|
36
|
+
|
37
|
+
"http_directory": "templates/ubuntu",
|
38
|
+
|
39
|
+
"boot_command": [
|
40
|
+
"<enter><wait><f6><esc><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
41
|
+
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
42
|
+
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
43
|
+
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
44
|
+
"/install/vmlinuz noapic ",
|
45
|
+
"preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ",
|
46
|
+
"debian-installer=en_US auto locale=en_US kbd-chooser/method=us ",
|
47
|
+
"hostname={{ .Name }} ",
|
48
|
+
"fb=false debconf/frontend=noninteractive ",
|
49
|
+
"keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ",
|
50
|
+
"keyboard-configuration/variant=USA console-setup/ask_detect=false ",
|
51
|
+
"grub-installer/bootdev=/dev/sda ",
|
52
|
+
"initrd=/install/initrd.gz -- <enter>"
|
53
|
+
],
|
54
|
+
|
55
|
+
"shutdown_command": "echo 'shutdown -P now' > shutdown.sh; echo 'vagrant'|sudo -S sh 'shutdown.sh'"
|
56
|
+
}
|
57
|
+
],
|
58
|
+
|
59
|
+
"post-processors": [
|
60
|
+
{
|
61
|
+
"type": "vagrant"
|
62
|
+
}
|
63
|
+
]
|
64
|
+
}
|
@@ -49,7 +49,7 @@ d-i user-setup/encrypt-home boolean false
|
|
49
49
|
# packages
|
50
50
|
tasksel tasksel/first multiselect standard, ubuntu-server
|
51
51
|
d-i pkgsel/install-language-support boolean false
|
52
|
-
d-i pkgsel/include string openssh-server nfs-common curl git-core
|
52
|
+
d-i pkgsel/include string openssh-server nfs-common curl git-core python
|
53
53
|
d-i pkgsel/upgrade select full-upgrade
|
54
54
|
d-i pkgsel/update-policy select none
|
55
55
|
postfix postfix/main_mailer_type select No configuration
|
@@ -26,8 +26,8 @@
|
|
26
26
|
<%- end -%>
|
27
27
|
"headless": true,
|
28
28
|
|
29
|
-
"iso_url": "http://releases.ubuntu.com/
|
30
|
-
"iso_checksum": "
|
29
|
+
"iso_url": "http://releases.ubuntu.com/xenial/ubuntu-16.04.5-server-amd64.iso",
|
30
|
+
"iso_checksum": "c94de1cc2e10160f325eb54638a5b5aa38f181d60ee33dae9578d96d932ee5f8",
|
31
31
|
"iso_checksum_type": "sha256",
|
32
32
|
|
33
33
|
"ssh_username": "vagrant",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boxes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Charlton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: claide
|
@@ -137,6 +137,7 @@ extra_rdoc_files: []
|
|
137
137
|
files:
|
138
138
|
- ".gitignore"
|
139
139
|
- ".hound.yml"
|
140
|
+
- ".rspec"
|
140
141
|
- ".rubocop.yml"
|
141
142
|
- ".ruby-version"
|
142
143
|
- ".travis.yml"
|
@@ -197,6 +198,7 @@ files:
|
|
197
198
|
- templates/debian/preseed.cfg
|
198
199
|
- templates/debian/stretch64.erb
|
199
200
|
- templates/debian/wheezy64.erb
|
201
|
+
- templates/ubuntu/bionic64.erb
|
200
202
|
- templates/ubuntu/precise64.erb
|
201
203
|
- templates/ubuntu/preseed.cfg
|
202
204
|
- templates/ubuntu/trusty64.erb
|
@@ -221,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
223
|
version: '0'
|
222
224
|
requirements: []
|
223
225
|
rubyforge_project:
|
224
|
-
rubygems_version: 2.6
|
226
|
+
rubygems_version: 2.7.6
|
225
227
|
signing_key:
|
226
228
|
specification_version: 4
|
227
229
|
summary: A command line tool to take the complexity out of building Vagrant boxes.
|