image_optim_pack 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.gitignore +1 -1
- data/.rubocop.yml +3 -0
- data/.travis.yml +12 -9
- data/Makefile +39 -12
- data/README.markdown +14 -9
- data/Vagrantfile +45 -7
- data/boxes/.gitignore +3 -0
- data/boxes/.rubocop.yml +10 -0
- data/boxes/Gemfile +6 -0
- data/boxes/Rakefile +143 -0
- data/boxes/definitions/centos-amd64/definition.rb +30 -0
- data/boxes/definitions/centos-amd64/ks.cfg +37 -0
- data/boxes/definitions/centos-i386/definition.rb +30 -0
- data/boxes/definitions/centos-i386/ks.cfg +37 -0
- data/boxes/definitions/centos-postinstall.sh +33 -0
- data/boxes/definitions/freebsd-amd64/definition.rb +38 -0
- data/boxes/definitions/freebsd-amd64/install.sh +66 -0
- data/boxes/definitions/freebsd-i386/definition.rb +38 -0
- data/boxes/definitions/freebsd-i386/install.sh +66 -0
- data/boxes/definitions/freebsd-postinstall.sh +38 -0
- data/boxes/definitions/openbsd-amd64/definition.rb +71 -0
- data/boxes/definitions/openbsd-i386/definition.rb +71 -0
- data/boxes/definitions/openbsd-postinstall.sh +29 -0
- data/image_optim_pack.gemspec +2 -4
- data/lib/image_optim/pack.rb +2 -3
- data/script/livecheck +29 -2
- data/script/run +32 -6
- data/script/update_versions +2 -0
- data/spec/image_optim/pack_spec.rb +2 -2
- data/vendor/{darwin/i386 → darwin-i386}/advpng +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/gifsicle +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/jhead +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/jpeg-recompress +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/jpegoptim +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/jpegtran +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/libjpeg.dylib +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/libpng.dylib +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/libz.dylib +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/optipng +0 -0
- data/vendor/darwin-i386/pngcrush +0 -0
- data/vendor/{darwin/i386 → darwin-i386}/pngquant +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/advpng +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/gifsicle +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/jhead +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/jpeg-recompress +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/jpegoptim +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/jpegtran +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/libjpeg.dylib +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/libpng.dylib +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/libz.dylib +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/optipng +0 -0
- data/vendor/darwin-x86_64/pngcrush +0 -0
- data/vendor/{darwin/x86_64 → darwin-x86_64}/pngquant +0 -0
- data/vendor/freebsd-amd64/advpng +0 -0
- data/vendor/freebsd-amd64/gifsicle +0 -0
- data/vendor/freebsd-amd64/jhead +0 -0
- data/vendor/freebsd-amd64/jpeg-recompress +0 -0
- data/vendor/freebsd-amd64/jpegoptim +0 -0
- data/vendor/freebsd-amd64/jpegtran +0 -0
- data/vendor/freebsd-amd64/libjpeg.so +0 -0
- data/vendor/freebsd-amd64/libpng.so +0 -0
- data/vendor/freebsd-amd64/libz.so +0 -0
- data/vendor/freebsd-amd64/optipng +0 -0
- data/vendor/freebsd-amd64/pngcrush +0 -0
- data/vendor/freebsd-amd64/pngquant +0 -0
- data/vendor/freebsd-i386/advpng +0 -0
- data/vendor/freebsd-i386/gifsicle +0 -0
- data/vendor/freebsd-i386/jhead +0 -0
- data/vendor/freebsd-i386/jpeg-recompress +0 -0
- data/vendor/freebsd-i386/jpegoptim +0 -0
- data/vendor/freebsd-i386/jpegtran +0 -0
- data/vendor/freebsd-i386/libjpeg.so +0 -0
- data/vendor/freebsd-i386/libpng.so +0 -0
- data/vendor/freebsd-i386/libz.so +0 -0
- data/vendor/freebsd-i386/optipng +0 -0
- data/vendor/freebsd-i386/pngcrush +0 -0
- data/vendor/freebsd-i386/pngquant +0 -0
- data/vendor/{linux/i686 → linux-i686}/advpng +0 -0
- data/vendor/{linux/i686 → linux-i686}/gifsicle +0 -0
- data/vendor/{linux/i686 → linux-i686}/jhead +0 -0
- data/vendor/{linux/i686 → linux-i686}/jpeg-recompress +0 -0
- data/vendor/{linux/i686 → linux-i686}/jpegoptim +0 -0
- data/vendor/{linux/i686 → linux-i686}/jpegtran +0 -0
- data/vendor/{linux/i686 → linux-i686}/libjpeg.so +0 -0
- data/vendor/{linux/i686 → linux-i686}/libpng.so +0 -0
- data/vendor/{linux/i686 → linux-i686}/libz.so +0 -0
- data/vendor/{linux/i686 → linux-i686}/optipng +0 -0
- data/vendor/linux-i686/pngcrush +0 -0
- data/vendor/{linux/i686 → linux-i686}/pngquant +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/advpng +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/gifsicle +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/jhead +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/jpeg-recompress +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/jpegoptim +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/jpegtran +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/libjpeg.so +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/libpng.so +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/libz.so +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/optipng +0 -0
- data/vendor/linux-x86_64/pngcrush +0 -0
- data/vendor/{linux/x86_64 → linux-x86_64}/pngquant +0 -0
- data/vendor/openbsd-amd64/advpng +0 -0
- data/vendor/openbsd-amd64/gifsicle +0 -0
- data/vendor/openbsd-amd64/jhead +0 -0
- data/vendor/openbsd-amd64/jpeg-recompress +0 -0
- data/vendor/openbsd-amd64/jpegoptim +0 -0
- data/vendor/openbsd-amd64/jpegtran +0 -0
- data/vendor/openbsd-amd64/libjpeg.so +0 -0
- data/vendor/openbsd-amd64/libpng.so +0 -0
- data/vendor/openbsd-amd64/libz.so +0 -0
- data/vendor/openbsd-amd64/optipng +0 -0
- data/vendor/openbsd-amd64/pngcrush +0 -0
- data/vendor/openbsd-amd64/pngquant +0 -0
- data/vendor/openbsd-i386/advpng +0 -0
- data/vendor/openbsd-i386/gifsicle +0 -0
- data/vendor/openbsd-i386/jhead +0 -0
- data/vendor/openbsd-i386/jpeg-recompress +0 -0
- data/vendor/openbsd-i386/jpegoptim +0 -0
- data/vendor/openbsd-i386/jpegtran +0 -0
- data/vendor/openbsd-i386/libjpeg.so +0 -0
- data/vendor/openbsd-i386/libpng.so +0 -0
- data/vendor/openbsd-i386/libz.so +0 -0
- data/vendor/openbsd-i386/optipng +0 -0
- data/vendor/openbsd-i386/pngcrush +0 -0
- data/vendor/openbsd-i386/pngquant +0 -0
- metadata +115 -93
- data/script/vm_init +0 -30
- data/vendor/darwin/i386/pngcrush +0 -0
- data/vendor/darwin/x86_64/pngcrush +0 -0
- data/vendor/linux/i686/pngcrush +0 -0
- data/vendor/linux/x86_64/pngcrush +0 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
Veewee::Session.declare({
|
2
|
+
:cpu_count => '1',
|
3
|
+
:memory_size => '512',
|
4
|
+
:disk_size => '8192',
|
5
|
+
:disk_format => 'VDI',
|
6
|
+
:hostiocache => 'off',
|
7
|
+
:os_type_id => 'RedHat6_64',
|
8
|
+
:iso_file => 'CentOS-6.5-x86_64-minimal.iso',
|
9
|
+
:iso_src => 'http://yum.singlehop.com/CentOS/6.5/isos/x86_64/CentOS-6.5-x86_64-minimal.iso',
|
10
|
+
:iso_sha256 => 'f9d84907d77df62017944cb23cab66305e94ee6ae6c1126415b81cc5e999bdd0',
|
11
|
+
:iso_download_timeout => '1000',
|
12
|
+
:boot_wait => '10',
|
13
|
+
:boot_cmd_sequence => [
|
14
|
+
'<Tab> text ks=http://%IP%:%PORT%/ks.cfg<Enter>',
|
15
|
+
],
|
16
|
+
:kickstart_port => '7122',
|
17
|
+
:kickstart_timeout => '300',
|
18
|
+
:kickstart_file => 'ks.cfg',
|
19
|
+
:ssh_login_timeout => '10000',
|
20
|
+
:ssh_user => 'veewee',
|
21
|
+
:ssh_password => 'veewee',
|
22
|
+
:ssh_key => '',
|
23
|
+
:ssh_host_port => '7222',
|
24
|
+
:ssh_guest_port => '22',
|
25
|
+
:sudo_cmd => "echo '%p'|sudo -S sh '%f'",
|
26
|
+
:shutdown_cmd => '/sbin/halt -h -p',
|
27
|
+
:postinstall_files => %w[../centos-postinstall.sh],
|
28
|
+
:postinstall_timeout => '10000',
|
29
|
+
:skip_iso_transfer => true,
|
30
|
+
})
|
@@ -0,0 +1,37 @@
|
|
1
|
+
install
|
2
|
+
cdrom
|
3
|
+
lang en_US.UTF-8
|
4
|
+
keyboard us
|
5
|
+
network --bootproto=dhcp
|
6
|
+
rootpw --iscrypted $1$damlkd,f$UC/u5pUts5QiU3ow.CSso/
|
7
|
+
firewall --enabled --service=ssh
|
8
|
+
authconfig --enableshadow --passalgo=sha512
|
9
|
+
selinux --disabled
|
10
|
+
timezone UTC
|
11
|
+
bootloader --location=mbr
|
12
|
+
|
13
|
+
text
|
14
|
+
skipx
|
15
|
+
zerombr
|
16
|
+
|
17
|
+
clearpart --all --initlabel
|
18
|
+
autopart
|
19
|
+
|
20
|
+
auth --useshadow --enablemd5
|
21
|
+
firstboot --disabled
|
22
|
+
reboot
|
23
|
+
|
24
|
+
%packages --nobase
|
25
|
+
@core
|
26
|
+
openssh-clients
|
27
|
+
%end
|
28
|
+
|
29
|
+
%post
|
30
|
+
/usr/bin/yum -y install sudo
|
31
|
+
/usr/sbin/groupadd veewee
|
32
|
+
/usr/sbin/useradd veewee -g veewee -G wheel
|
33
|
+
echo "veewee"|passwd --stdin veewee
|
34
|
+
echo "veewee ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/veewee
|
35
|
+
chmod 0440 /etc/sudoers.d/veewee
|
36
|
+
%end
|
37
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
Veewee::Session.declare({
|
2
|
+
:cpu_count => '1',
|
3
|
+
:memory_size => '512',
|
4
|
+
:disk_size => '8192',
|
5
|
+
:disk_format => 'VDI',
|
6
|
+
:hostiocache => 'off',
|
7
|
+
:os_type_id => 'RedHat',
|
8
|
+
:iso_file => 'CentOS-6.5-i386-minimal.iso',
|
9
|
+
:iso_src => 'http://yum.singlehop.com/CentOS/6.5/isos/i386/CentOS-6.5-i386-minimal.iso',
|
10
|
+
:iso_sha256 => '3e8fb326bf389c631dcea9c16da6ebcd2c6f150d526e147c1307beb9314eb794',
|
11
|
+
:iso_download_timeout => '1000',
|
12
|
+
:boot_wait => '10',
|
13
|
+
:boot_cmd_sequence => [
|
14
|
+
'<Tab> text ks=http://%IP%:%PORT%/ks.cfg<Enter>',
|
15
|
+
],
|
16
|
+
:kickstart_port => '7122',
|
17
|
+
:kickstart_timeout => '300',
|
18
|
+
:kickstart_file => 'ks.cfg',
|
19
|
+
:ssh_login_timeout => '10000',
|
20
|
+
:ssh_user => 'veewee',
|
21
|
+
:ssh_password => 'veewee',
|
22
|
+
:ssh_key => '',
|
23
|
+
:ssh_host_port => '7222',
|
24
|
+
:ssh_guest_port => '22',
|
25
|
+
:sudo_cmd => "echo '%p'|sudo -S sh '%f'",
|
26
|
+
:shutdown_cmd => '/sbin/halt -h -p',
|
27
|
+
:postinstall_files => %w[../centos-postinstall.sh],
|
28
|
+
:postinstall_timeout => '10000',
|
29
|
+
:skip_iso_transfer => true,
|
30
|
+
})
|
@@ -0,0 +1,37 @@
|
|
1
|
+
install
|
2
|
+
cdrom
|
3
|
+
lang en_US.UTF-8
|
4
|
+
keyboard us
|
5
|
+
network --bootproto=dhcp
|
6
|
+
rootpw --iscrypted $1$damlkd,f$UC/u5pUts5QiU3ow.CSso/
|
7
|
+
firewall --enabled --service=ssh
|
8
|
+
authconfig --enableshadow --passalgo=sha512
|
9
|
+
selinux --disabled
|
10
|
+
timezone UTC
|
11
|
+
bootloader --location=mbr
|
12
|
+
|
13
|
+
text
|
14
|
+
skipx
|
15
|
+
zerombr
|
16
|
+
|
17
|
+
clearpart --all --initlabel
|
18
|
+
autopart
|
19
|
+
|
20
|
+
auth --useshadow --enablemd5
|
21
|
+
firstboot --disabled
|
22
|
+
reboot
|
23
|
+
|
24
|
+
%packages --nobase
|
25
|
+
@core
|
26
|
+
openssh-clients
|
27
|
+
%end
|
28
|
+
|
29
|
+
%post
|
30
|
+
/usr/bin/yum -y install sudo
|
31
|
+
/usr/sbin/groupadd veewee
|
32
|
+
/usr/sbin/useradd veewee -g veewee -G wheel
|
33
|
+
echo "veewee"|passwd --stdin veewee
|
34
|
+
echo "veewee ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/veewee
|
35
|
+
chmod 0440 /etc/sudoers.d/veewee
|
36
|
+
%end
|
37
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
set -ex
|
2
|
+
|
3
|
+
sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers
|
4
|
+
|
5
|
+
yum -y install wget
|
6
|
+
|
7
|
+
# Make ssh faster by not waiting on DNS
|
8
|
+
echo "UseDNS no" >> /etc/ssh/sshd_config
|
9
|
+
|
10
|
+
# Vagrant specific
|
11
|
+
date > /etc/vagrant_box_build_time
|
12
|
+
|
13
|
+
# Add vagrant user
|
14
|
+
/usr/sbin/groupadd vagrant
|
15
|
+
/usr/sbin/useradd vagrant -g vagrant -G wheel
|
16
|
+
echo "vagrant"|passwd --stdin vagrant
|
17
|
+
echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/vagrant
|
18
|
+
chmod 0440 /etc/sudoers.d/vagrant
|
19
|
+
|
20
|
+
# Installing vagrant keys
|
21
|
+
mkdir -pm 700 /home/vagrant/.ssh
|
22
|
+
wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O /home/vagrant/.ssh/authorized_keys
|
23
|
+
chmod 0600 /home/vagrant/.ssh/authorized_keys
|
24
|
+
chown -R vagrant /home/vagrant/.ssh
|
25
|
+
|
26
|
+
yum -y clean all
|
27
|
+
|
28
|
+
# Remove traces of mac address from network configuration
|
29
|
+
sed -i /HWADDR/d /etc/sysconfig/network-scripts/ifcfg-eth0
|
30
|
+
rm /etc/udev/rules.d/70-persistent-net.rules
|
31
|
+
|
32
|
+
# Zero out the free space to save space in the final image
|
33
|
+
dd if=/dev/zero of=/filler bs=1M || rm /filler
|
@@ -0,0 +1,38 @@
|
|
1
|
+
Veewee::Session.declare({
|
2
|
+
:cpu_count => '1',
|
3
|
+
:memory_size => '512',
|
4
|
+
:disk_size => '8192',
|
5
|
+
:disk_format => 'VDI',
|
6
|
+
:hostiocache => 'off',
|
7
|
+
:os_type_id => 'FreeBSD_64',
|
8
|
+
:iso_file => 'FreeBSD-9.3-RELEASE-amd64-disc1.iso',
|
9
|
+
:iso_src => 'http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.3/FreeBSD-9.3-RELEASE-amd64-disc1.iso',
|
10
|
+
:iso_sha256 => '5a3c82653d77bba7d7ded8bd7efbedc09d52cf4045d98ce52a82c9e0f8fa9b0e',
|
11
|
+
:iso_download_timeout => '1000',
|
12
|
+
:boot_wait => '10',
|
13
|
+
:boot_cmd_sequence => [
|
14
|
+
'<Esc>',
|
15
|
+
'boot -s',
|
16
|
+
'<Enter>',
|
17
|
+
'<Wait>' * 10,
|
18
|
+
'/bin/sh<Enter>',
|
19
|
+
'mdmfs -s 100m md1 /tmp<Enter>',
|
20
|
+
'dhclient -l /tmp/dhclient.lease.em0 em0<Enter>',
|
21
|
+
'<Wait>' * 10,
|
22
|
+
'fetch -o /tmp/install.sh http://%IP%:%PORT%/install.sh && chmod +x /tmp/install.sh && /tmp/install.sh %NAME%<Enter>',
|
23
|
+
],
|
24
|
+
:kickstart_port => '7122',
|
25
|
+
:kickstart_timeout => '300',
|
26
|
+
:kickstart_file => 'install.sh',
|
27
|
+
:ssh_login_timeout => '10000',
|
28
|
+
:ssh_user => 'root',
|
29
|
+
:ssh_password => 'vagrant',
|
30
|
+
:ssh_key => '',
|
31
|
+
:ssh_host_port => '7222',
|
32
|
+
:ssh_guest_port => '22',
|
33
|
+
:sudo_cmd => "sh '%f'",
|
34
|
+
:shutdown_cmd => 'shutdown -p now',
|
35
|
+
:postinstall_files => %w[../freebsd-postinstall.sh],
|
36
|
+
:postinstall_timeout => '10000',
|
37
|
+
:skip_iso_transfer => true,
|
38
|
+
})
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#!/bin/sh -x
|
2
|
+
|
3
|
+
# Credit: http://www.aisecure.net/2011/05/01/root-on-zfs-freebsd-current/
|
4
|
+
|
5
|
+
NAME=$1
|
6
|
+
|
7
|
+
# create disks
|
8
|
+
gpart create -s gpt ada0
|
9
|
+
gpart add -t freebsd-boot -l boot -b 40 -s 512K ada0
|
10
|
+
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
|
11
|
+
gpart add -t freebsd-ufs -l root -b 1M -s 2G ada0
|
12
|
+
gpart add -t freebsd-swap -l swap -s 512M ada0
|
13
|
+
gpart add -t freebsd-ufs -l var -s 1G ada0
|
14
|
+
gpart add -t freebsd-ufs -l tmp -s 512M ada0
|
15
|
+
gpart add -t freebsd-ufs -l usr -a 1M ada0
|
16
|
+
|
17
|
+
# create filesystems
|
18
|
+
newfs -U /dev/gpt/root
|
19
|
+
newfs -U /dev/gpt/var
|
20
|
+
newfs -U /dev/gpt/tmp
|
21
|
+
newfs -U /dev/gpt/usr
|
22
|
+
|
23
|
+
# mount the filesystems
|
24
|
+
mount /dev/gpt/root /mnt
|
25
|
+
mkdir /mnt/var && mount /dev/gpt/var /mnt/var
|
26
|
+
mkdir /mnt/tmp && mount /dev/gpt/tmp /mnt/tmp
|
27
|
+
mkdir /mnt/usr && mount /dev/gpt/usr /mnt/usr
|
28
|
+
|
29
|
+
# correct permissions
|
30
|
+
chmod 1777 /mnt/tmp
|
31
|
+
mkdir /mnt/var/tmp && chmod 1777 /mnt/var/tmp
|
32
|
+
cd /mnt && mkdir usr/home && ln -s usr/home home
|
33
|
+
|
34
|
+
# Install the OS
|
35
|
+
cd /usr/freebsd-dist
|
36
|
+
cat base.txz | tar --unlink -xpJf - -C /mnt
|
37
|
+
cat lib32.txz | tar --unlink -xpJf - -C /mnt
|
38
|
+
cat kernel.txz | tar --unlink -xpJf - -C /mnt
|
39
|
+
cat src.txz | tar --unlink -xpJf - -C /mnt
|
40
|
+
|
41
|
+
# Enable required services
|
42
|
+
cat >> /mnt/etc/rc.conf << EOT
|
43
|
+
hostname="${NAME}"
|
44
|
+
ifconfig_em0="dhcp"
|
45
|
+
sshd_enable="YES"
|
46
|
+
EOT
|
47
|
+
|
48
|
+
# Enable swap
|
49
|
+
cat >> /mnt/etc/fstab << EOT
|
50
|
+
/dev/gpt/swap none swap sw 0 0
|
51
|
+
/dev/gpt/root / ufs rw 1 1
|
52
|
+
/dev/gpt/var /var ufs rw 1 1
|
53
|
+
/dev/gpt/tmp /tmp ufs rw 1 1
|
54
|
+
/dev/gpt/usr /usr ufs rw 1 1
|
55
|
+
EOT
|
56
|
+
|
57
|
+
# Install a few requirements
|
58
|
+
touch /mnt/etc/resolv.conf
|
59
|
+
echo 'PermitRootLogin yes' >> /mnt/etc/ssh/sshd_config
|
60
|
+
|
61
|
+
# Set up user accounts
|
62
|
+
mkdir /mnt/usr/home/vagrant && chown 1001:1001 /mnt/home/vagrant
|
63
|
+
echo "vagrant" | pw -V /mnt/etc useradd vagrant -h 0 -s csh -G wheel -d /home/vagrant -c "Vagrant User"
|
64
|
+
echo "vagrant" | pw -V /mnt/etc usermod root -h 0
|
65
|
+
|
66
|
+
reboot
|
@@ -0,0 +1,38 @@
|
|
1
|
+
Veewee::Session.declare({
|
2
|
+
:cpu_count => '1',
|
3
|
+
:memory_size => '512',
|
4
|
+
:disk_size => '8192',
|
5
|
+
:disk_format => 'VDI',
|
6
|
+
:hostiocache => 'off',
|
7
|
+
:os_type_id => 'FreeBSD',
|
8
|
+
:iso_file => 'FreeBSD-9.3-RELEASE-i386-disc1.iso',
|
9
|
+
:iso_src => 'http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.3/FreeBSD-9.3-RELEASE-i386-disc1.iso',
|
10
|
+
:iso_sha256 => 'cab6aad9c3d5ea6a3fb4059f808225c67f1edaea730c555a86a9707ac41ba75d',
|
11
|
+
:iso_download_timeout => '1000',
|
12
|
+
:boot_wait => '10',
|
13
|
+
:boot_cmd_sequence => [
|
14
|
+
'<Esc>',
|
15
|
+
'boot -s',
|
16
|
+
'<Enter>',
|
17
|
+
'<Wait>' * 10,
|
18
|
+
'/bin/sh<Enter>',
|
19
|
+
'mdmfs -s 100m md1 /tmp<Enter>',
|
20
|
+
'dhclient -l /tmp/dhclient.lease.em0 em0<Enter>',
|
21
|
+
'<Wait>' * 10,
|
22
|
+
'fetch -o /tmp/install.sh http://%IP%:%PORT%/install.sh && chmod +x /tmp/install.sh && /tmp/install.sh %NAME%<Enter>',
|
23
|
+
],
|
24
|
+
:kickstart_port => '7122',
|
25
|
+
:kickstart_timeout => '300',
|
26
|
+
:kickstart_file => 'install.sh',
|
27
|
+
:ssh_login_timeout => '10000',
|
28
|
+
:ssh_user => 'root',
|
29
|
+
:ssh_password => 'vagrant',
|
30
|
+
:ssh_key => '',
|
31
|
+
:ssh_host_port => '7222',
|
32
|
+
:ssh_guest_port => '22',
|
33
|
+
:sudo_cmd => "sh '%f'",
|
34
|
+
:shutdown_cmd => 'shutdown -p now',
|
35
|
+
:postinstall_files => %w[../freebsd-postinstall.sh],
|
36
|
+
:postinstall_timeout => '10000',
|
37
|
+
:skip_iso_transfer => true,
|
38
|
+
})
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#!/bin/sh -x
|
2
|
+
|
3
|
+
# Credit: http://www.aisecure.net/2011/05/01/root-on-zfs-freebsd-current/
|
4
|
+
|
5
|
+
NAME=$1
|
6
|
+
|
7
|
+
# create disks
|
8
|
+
gpart create -s gpt ada0
|
9
|
+
gpart add -t freebsd-boot -l boot -b 40 -s 512K ada0
|
10
|
+
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
|
11
|
+
gpart add -t freebsd-ufs -l root -b 1M -s 2G ada0
|
12
|
+
gpart add -t freebsd-swap -l swap -s 512M ada0
|
13
|
+
gpart add -t freebsd-ufs -l var -s 1G ada0
|
14
|
+
gpart add -t freebsd-ufs -l tmp -s 512M ada0
|
15
|
+
gpart add -t freebsd-ufs -l usr -a 1M ada0
|
16
|
+
|
17
|
+
# create filesystems
|
18
|
+
newfs -U /dev/gpt/root
|
19
|
+
newfs -U /dev/gpt/var
|
20
|
+
newfs -U /dev/gpt/tmp
|
21
|
+
newfs -U /dev/gpt/usr
|
22
|
+
|
23
|
+
# mount the filesystems
|
24
|
+
mount /dev/gpt/root /mnt
|
25
|
+
mkdir /mnt/var && mount /dev/gpt/var /mnt/var
|
26
|
+
mkdir /mnt/tmp && mount /dev/gpt/tmp /mnt/tmp
|
27
|
+
mkdir /mnt/usr && mount /dev/gpt/usr /mnt/usr
|
28
|
+
|
29
|
+
# correct permissions
|
30
|
+
chmod 1777 /mnt/tmp
|
31
|
+
mkdir /mnt/var/tmp && chmod 1777 /mnt/var/tmp
|
32
|
+
cd /mnt && mkdir usr/home && ln -s usr/home home
|
33
|
+
|
34
|
+
# Install the OS
|
35
|
+
cd /usr/freebsd-dist
|
36
|
+
cat base.txz | tar --unlink -xpJf - -C /mnt
|
37
|
+
cat lib32.txz | tar --unlink -xpJf - -C /mnt
|
38
|
+
cat kernel.txz | tar --unlink -xpJf - -C /mnt
|
39
|
+
cat src.txz | tar --unlink -xpJf - -C /mnt
|
40
|
+
|
41
|
+
# Enable required services
|
42
|
+
cat >> /mnt/etc/rc.conf << EOT
|
43
|
+
hostname="${NAME}"
|
44
|
+
ifconfig_em0="dhcp"
|
45
|
+
sshd_enable="YES"
|
46
|
+
EOT
|
47
|
+
|
48
|
+
# Enable swap
|
49
|
+
cat >> /mnt/etc/fstab << EOT
|
50
|
+
/dev/gpt/swap none swap sw 0 0
|
51
|
+
/dev/gpt/root / ufs rw 1 1
|
52
|
+
/dev/gpt/var /var ufs rw 1 1
|
53
|
+
/dev/gpt/tmp /tmp ufs rw 1 1
|
54
|
+
/dev/gpt/usr /usr ufs rw 1 1
|
55
|
+
EOT
|
56
|
+
|
57
|
+
# Install a few requirements
|
58
|
+
touch /mnt/etc/resolv.conf
|
59
|
+
echo 'PermitRootLogin yes' >> /mnt/etc/ssh/sshd_config
|
60
|
+
|
61
|
+
# Set up user accounts
|
62
|
+
mkdir /mnt/usr/home/vagrant && chown 1001:1001 /mnt/home/vagrant
|
63
|
+
echo "vagrant" | pw -V /mnt/etc useradd vagrant -h 0 -s csh -G wheel -d /home/vagrant -c "Vagrant User"
|
64
|
+
echo "vagrant" | pw -V /mnt/etc usermod root -h 0
|
65
|
+
|
66
|
+
reboot
|
@@ -0,0 +1,38 @@
|
|
1
|
+
set -ex
|
2
|
+
|
3
|
+
ntpdate -v -b in.pool.ntp.org
|
4
|
+
date > /etc/vagrant_box_build_time
|
5
|
+
|
6
|
+
ASSUME_ALWAYS_YES=yes pkg info
|
7
|
+
pkg install -y sudo bash-static wget
|
8
|
+
|
9
|
+
# setup the vagrant key
|
10
|
+
mkdir -p /home/vagrant/.ssh
|
11
|
+
chmod 700 /home/vagrant/.ssh
|
12
|
+
wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O /home/vagrant/.ssh/authorized_keys
|
13
|
+
chmod 600 /home/vagrant/.ssh/authorized_keys
|
14
|
+
chown -R vagrant /home/vagrant/.ssh
|
15
|
+
|
16
|
+
# passwordless sudo
|
17
|
+
echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /usr/local/etc/sudoers
|
18
|
+
|
19
|
+
# undo customizations
|
20
|
+
sed -i '' -e '/^REFUSE /d' /etc/portsnap.conf
|
21
|
+
sed -i '' -e '/^PermitRootLogin /d' /etc/ssh/sshd_config
|
22
|
+
|
23
|
+
# set vagrant shell to bash
|
24
|
+
pw usermod vagrant -s /usr/local/bin/bash
|
25
|
+
|
26
|
+
# cleanup
|
27
|
+
sudo pkg clean -y
|
28
|
+
rm -rf \
|
29
|
+
/var/db/freebsd-update/* \
|
30
|
+
/var/cache/pkg/* \
|
31
|
+
/etc/ssh/ssh_host_key* \
|
32
|
+
/usr/src \
|
33
|
+
/var/log/* \
|
34
|
+
/var/tmp/* \
|
35
|
+
/tmp/*
|
36
|
+
dd if=/dev/zero of=filler bs=1M || rm filler
|
37
|
+
|
38
|
+
shutdown -p now
|
@@ -0,0 +1,71 @@
|
|
1
|
+
Veewee::Session.declare({
|
2
|
+
:cpu_count => '1',
|
3
|
+
:memory_size => '512',
|
4
|
+
:disk_size => '8192',
|
5
|
+
:disk_format => 'VDI',
|
6
|
+
:hostiocache => 'off',
|
7
|
+
:os_type_id => 'OpenBSD_64',
|
8
|
+
:iso_file => 'OpenBSD-5.5-amd64.iso',
|
9
|
+
:iso_src => 'http://ftp3.usa.openbsd.org/pub/OpenBSD/5.5/amd64/install55.iso',
|
10
|
+
:iso_sha256 => 'cc465ce3f8397883e91c6e1a8a98b1b3507a338984bbfe8978050c5f8fdcaf3f',
|
11
|
+
:iso_download_timeout => '1000',
|
12
|
+
:boot_wait => '50',
|
13
|
+
:boot_cmd_sequence => [
|
14
|
+
'I<Enter>', # I - install
|
15
|
+
'us<Enter>', # set the keyboard
|
16
|
+
'OpenBSD55-x64<Enter>', # set the hostname
|
17
|
+
'<Enter>', # Which nic to config ? [em0]
|
18
|
+
'<Enter>', # do you want dhcp ? [dhcp]
|
19
|
+
'<Wait>' * 5,
|
20
|
+
'none<Enter>', # IPV6 for em0 ? [none]
|
21
|
+
'done<Enter>', # Which other nic do you wish to configure [done]
|
22
|
+
'vagrant<Enter>', # Pw for root account
|
23
|
+
'vagrant<Enter>',
|
24
|
+
'yes<Enter>', # Start sshd by default ? [yes]
|
25
|
+
'no<Enter>', # Start ntpd by default ? [yes]
|
26
|
+
'no<Enter>', # Do you want the X window system [yes]
|
27
|
+
'vagrant<Enter>', # Setup a user ?
|
28
|
+
'vagrant<Enter>', # Full username
|
29
|
+
'vagrant<Enter>', # Pw for this user
|
30
|
+
'vagrant<Enter>',
|
31
|
+
'no<Enter>', # Do you want to disable sshd for root ? [yes]
|
32
|
+
'GB<Enter>', # What timezone are you in ?
|
33
|
+
'<Enter>', # Available disks [sd0]
|
34
|
+
'<Enter>', # Use DUIDs rather than device names in fstab ? [yes]
|
35
|
+
'W<Enter>', # Use (W)whole disk or (E)edit MBR ? [whole]
|
36
|
+
'A<Enter>', # Use (A)auto layout ... ? [a]
|
37
|
+
'<Wait>' * 70,
|
38
|
+
'cd<Enter>', # location of the sets [cd]
|
39
|
+
'<Enter>', # Available cd-roms : cd0
|
40
|
+
'<Enter>', # Pathname to sets ? [5.5/amd64]
|
41
|
+
'-game55.tgz<Enter>', # Remove games and X
|
42
|
+
'-xbase55.tgz<Enter>',
|
43
|
+
'-xetc55.tgz<Enter>',
|
44
|
+
'-xshare55.tgz<Enter>',
|
45
|
+
'-xfont55.tgz<Enter>',
|
46
|
+
'-xserv55.tgz<Enter>',
|
47
|
+
'done<Enter>',
|
48
|
+
'<Wait>',
|
49
|
+
'yes<Enter>', # CD does not contain SHA256.sig (5.5) Continue without verification?
|
50
|
+
'done<Enter>', # Done installing ?
|
51
|
+
'<Wait>' * 6,
|
52
|
+
'yes<Enter><Wait>', # Time appears wrong. Set to ...? [yes]
|
53
|
+
'<Wait>' * 6,
|
54
|
+
'reboot<Enter>',
|
55
|
+
'<Wait>' * 6,
|
56
|
+
],
|
57
|
+
:kickstart_port => '7122',
|
58
|
+
:kickstart_timeout => '300',
|
59
|
+
:kickstart_file => '',
|
60
|
+
:ssh_login_timeout => '10000',
|
61
|
+
:ssh_user => 'root',
|
62
|
+
:ssh_password => 'vagrant',
|
63
|
+
:ssh_key => '',
|
64
|
+
:ssh_host_port => '7222',
|
65
|
+
:ssh_guest_port => '22',
|
66
|
+
:sudo_cmd => "sh '%f'",
|
67
|
+
:shutdown_cmd => '/sbin/halt -p',
|
68
|
+
:postinstall_files => %w[../openbsd-postinstall.sh],
|
69
|
+
:postinstall_timeout => '10000',
|
70
|
+
:skip_iso_transfer => true,
|
71
|
+
})
|