stemcell_builder 1.0.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/.gitignore +20 -0
- data/.rvmrc +1 -0
- data/.travis.yml +1 -0
- data/Gemfile +14 -0
- data/LICENSE.txt +22 -0
- data/README.md +123 -0
- data/Rakefile +10 -0
- data/assets/box.ovf.erb +81 -0
- data/assets/stemcell_mf_schema.yaml +30 -0
- data/bin/stemcell_builder +138 -0
- data/lib/stemcell.rb +3 -0
- data/lib/stemcell/builder.rb +445 -0
- data/lib/stemcell/builders/centos.rb +33 -0
- data/lib/stemcell/builders/redhat.rb +34 -0
- data/lib/stemcell/builders/ubuntu.rb +36 -0
- data/lib/stemcell/const.rb +12 -0
- data/lib/stemcell/version.rb +10 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/stemcell_builder/builder_spec.rb +186 -0
- data/spec/stemcell_builder/centos_spec.rb +39 -0
- data/spec/stemcell_builder/redhat_spec.rb +53 -0
- data/spec/stemcell_builder/ubuntu_spec.rb +38 -0
- data/stemcell_builder.gemspec +42 -0
- data/templates/centos/_60-bosh-sysctl.conf +5 -0
- data/templates/centos/_empty_state.yml +9 -0
- data/templates/centos/_monitrc +8 -0
- data/templates/centos/_ntpdate +10 -0
- data/templates/centos/_runonce +46 -0
- data/templates/centos/_sysstat +18 -0
- data/templates/centos/_variables.sh.erb +31 -0
- data/templates/centos/base.sh +23 -0
- data/templates/centos/bosh_agent.sh +39 -0
- data/templates/centos/cleanup.sh +28 -0
- data/templates/centos/definition.rb.erb +37 -0
- data/templates/centos/harden.sh +8 -0
- data/templates/centos/ks.cfg +43 -0
- data/templates/centos/micro.sh +57 -0
- data/templates/centos/monit.sh +21 -0
- data/templates/centos/postinstall.sh +27 -0
- data/templates/centos/ruby.sh +42 -0
- data/templates/centos/setup-bosh.sh +20 -0
- data/templates/centos/sudo.sh +13 -0
- data/templates/centos/timestamp.sh +15 -0
- data/templates/centos/vmware-tools.sh +17 -0
- data/templates/centos/zerodisk.sh +9 -0
- data/templates/noop/erbtest.txt.erb +1 -0
- data/templates/noop/test.txt +1 -0
- data/templates/redhat/_60-bosh-sysctl.conf +5 -0
- data/templates/redhat/_empty_state.yml +9 -0
- data/templates/redhat/_monitrc +8 -0
- data/templates/redhat/_ntpdate +10 -0
- data/templates/redhat/_runonce +46 -0
- data/templates/redhat/_sysstat +18 -0
- data/templates/redhat/_variables.sh.erb +31 -0
- data/templates/redhat/base.sh +41 -0
- data/templates/redhat/bosh_agent.sh +37 -0
- data/templates/redhat/cleanup.sh +30 -0
- data/templates/redhat/definition.rb.erb +38 -0
- data/templates/redhat/harden.sh +8 -0
- data/templates/redhat/ks.cfg +86 -0
- data/templates/redhat/micro.sh +57 -0
- data/templates/redhat/monit.sh +21 -0
- data/templates/redhat/postinstall.sh +27 -0
- data/templates/redhat/rhnreg.sh.erb +15 -0
- data/templates/redhat/ruby.sh +42 -0
- data/templates/redhat/setup-bosh.sh +20 -0
- data/templates/redhat/sudo.sh +13 -0
- data/templates/redhat/timestamp.sh +15 -0
- data/templates/redhat/vmware-tools.sh +17 -0
- data/templates/redhat/zerodisk.sh +9 -0
- data/templates/ubuntu/_60-bosh-sysctl.conf +5 -0
- data/templates/ubuntu/_empty_state.yml +9 -0
- data/templates/ubuntu/_helpers.sh +40 -0
- data/templates/ubuntu/_monitrc +8 -0
- data/templates/ubuntu/_ntpdate +10 -0
- data/templates/ubuntu/_runonce +46 -0
- data/templates/ubuntu/_sysstat +18 -0
- data/templates/ubuntu/_variables.sh.erb +30 -0
- data/templates/ubuntu/apt-upgrade.sh +19 -0
- data/templates/ubuntu/base-stemcell.sh +95 -0
- data/templates/ubuntu/bosh_agent.sh +39 -0
- data/templates/ubuntu/definition.rb.erb +63 -0
- data/templates/ubuntu/harden.sh +9 -0
- data/templates/ubuntu/micro.sh +57 -0
- data/templates/ubuntu/monit.sh +22 -0
- data/templates/ubuntu/network-cleanup.sh +17 -0
- data/templates/ubuntu/postinstall.sh +45 -0
- data/templates/ubuntu/preseed.cfg +87 -0
- data/templates/ubuntu/ruby.sh +54 -0
- data/templates/ubuntu/setup-bosh.sh +14 -0
- data/templates/ubuntu/sudo.sh +14 -0
- data/templates/ubuntu/timestamp.sh +13 -0
- data/templates/ubuntu/vmware-tools.sh +22 -0
- data/templates/ubuntu/zero-disk.sh +10 -0
- metadata +375 -0
@@ -0,0 +1,95 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -x
|
3
|
+
|
4
|
+
source _helpers.sh
|
5
|
+
source _variables.sh
|
6
|
+
|
7
|
+
PACKAGES="build-essential,libssl-dev,lsof,strace,bind9-host,dnsutils,iputils-arping,curl,wget,libcurl3,bison,libreadline6-dev,libxml2,libxml2-dev,libxslt1.1,libxslt1-dev,zip,unzip,nfs-common,flex,psmisc,iptables,sysstat,rsync,openssh-server,libncurses5-dev,quota,libaio1,psmisc,dialog"
|
8
|
+
CHROOT=/tmp/chroot
|
9
|
+
[ -d $CHROOT ] && rm -rf $CHROOT && mkdir -p $CHROOT
|
10
|
+
|
11
|
+
## Check if stemcell_base.tar.gz already exists
|
12
|
+
[ -f $bosh_app_dir/stemcell_base.tar.gz ] && exit 0
|
13
|
+
|
14
|
+
pushd /tmp
|
15
|
+
ARCH=$(dpkg --print-architecture)
|
16
|
+
debootstrap --make-tarball=debootstrap-squeeze-tarball.tar --arch=$ARCH --include=$PACKAGES squeeze $CHROOT
|
17
|
+
debootstrap --variant=minbase --unpack-tarball=/tmp/debootstrap-squeeze-tarball.tar squeeze $CHROOT
|
18
|
+
# Creates a pristine image to be run inside a warden container.
|
19
|
+
hostname="ubuntu.defaultdomain ubuntu"
|
20
|
+
rm -f $CHROOT/var/lib/apt/lists/{archive,security,lock}*
|
21
|
+
|
22
|
+
# Reconfigure timezone and locale
|
23
|
+
echo 'en_US.UTF-8 UTF-8' > $CHROOT/etc/locale.gen
|
24
|
+
echo 'UTC' > $CHROOT/etc/timezone
|
25
|
+
run_in_chroot $CHROOT "
|
26
|
+
dpkg-reconfigure -fnoninteractive libc6
|
27
|
+
dpkg-reconfigure -fnoninteractive locales
|
28
|
+
dpkg-reconfigure -fnoninteractive tzdata
|
29
|
+
"
|
30
|
+
|
31
|
+
# Fix /etc/mtab
|
32
|
+
run_in_chroot $CHROOT "ln -s /proc/mounts /etc/mtab"
|
33
|
+
|
34
|
+
# configure the network using the dhcp
|
35
|
+
cat <<EOF > $CHROOT/etc/network/interfaces
|
36
|
+
# This file describes the network interfaces available on your system
|
37
|
+
# and how to activate them. For more information, see interfaces(5).
|
38
|
+
|
39
|
+
# The loopback network interface
|
40
|
+
auto lo
|
41
|
+
iface lo inet loopback
|
42
|
+
|
43
|
+
auto eth0
|
44
|
+
iface eth0 inet dhcp
|
45
|
+
EOF
|
46
|
+
|
47
|
+
# set the hostname
|
48
|
+
cat <<EOF > $CHROOT/etc/hostname
|
49
|
+
$hostname
|
50
|
+
EOF
|
51
|
+
# set minimal hosts
|
52
|
+
cat <<EOF > $CHROOT/etc/hosts
|
53
|
+
127.0.0.1 localhost
|
54
|
+
127.0.1.1 $hostname
|
55
|
+
|
56
|
+
# The following lines are desirable for IPv6 capable hosts
|
57
|
+
::1 ip6-localhost ip6-loopback
|
58
|
+
fe00::0 ip6-localnet
|
59
|
+
ff00::0 ip6-mcastprefix
|
60
|
+
ff02::1 ip6-allnodes
|
61
|
+
ff02::2 ip6-allrouters
|
62
|
+
EOF
|
63
|
+
|
64
|
+
# Install Firstboot script
|
65
|
+
cat <<EOF > $CHROOT/etc/rc.local
|
66
|
+
#!/bin/sh -e
|
67
|
+
#execute firstboot.sh only once
|
68
|
+
if [ ! -e /root/firstboot_done ]; then
|
69
|
+
if [ -e /root/firstboot.sh ]; then
|
70
|
+
/root/firstboot.sh
|
71
|
+
fi
|
72
|
+
touch /root/firstboot_done
|
73
|
+
fi
|
74
|
+
exit 0
|
75
|
+
EOF
|
76
|
+
cat <<EOF > $CHROOT/root/firstboot.sh
|
77
|
+
#!/bin/sh
|
78
|
+
rm /etc/resolv.conf
|
79
|
+
touch /etc/resolv.conf
|
80
|
+
rm /etc/ssh/ssh_host*key*
|
81
|
+
/etc/init.d/networking restart
|
82
|
+
dpkg-reconfigure -fnoninteractive -pcritical openssh-server
|
83
|
+
dpkg-reconfigure -fnoninteractive sysstat
|
84
|
+
EOF
|
85
|
+
chmod 0755 $CHROOT/root/firstboot.sh
|
86
|
+
|
87
|
+
# perform clean up
|
88
|
+
run_in_chroot $CHROOT "
|
89
|
+
apt-get clean
|
90
|
+
apt-get autoremove
|
91
|
+
"
|
92
|
+
echo "Creating base stemcell archive at $bosh_app_dir/stemcell_base.tar.gz"
|
93
|
+
tar -C $CHROOT -czf $bosh_app_dir/stemcell_base.tar.gz .
|
94
|
+
chmod 0700 $bosh_app_dir/stemcell_base.tar.gz
|
95
|
+
popd
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -x
|
3
|
+
|
4
|
+
source _variables.sh
|
5
|
+
|
6
|
+
mkdir -p /tmp/bosh_agent
|
7
|
+
echo -n $infrastructure > /etc/infrastructure
|
8
|
+
|
9
|
+
pushd /tmp/bosh_agent
|
10
|
+
cp $SRC_DIR/_bosh_agent.tar /tmp/bosh_agent
|
11
|
+
tar xmvf _bosh_agent.tar
|
12
|
+
$bosh_dir/bin/gem install *.gem --force --no-ri --no-rdoc
|
13
|
+
chmod +x $bosh_dir/bin/bosh_agent
|
14
|
+
|
15
|
+
# configure bosh agent
|
16
|
+
mkdir -p /etc/sv/agent/log
|
17
|
+
mkdir -p /var/vcap/bosh/log
|
18
|
+
|
19
|
+
echo '#!/bin/bash
|
20
|
+
export PATH=/var/vcap/bosh/bin:$PATH
|
21
|
+
exec 2>&1
|
22
|
+
exec /var/vcap/bosh/bin/bosh_agent --configure --infrastructure=`cat /etc/infrastructure` --platform=ubuntu
|
23
|
+
' > /etc/sv/agent/run
|
24
|
+
|
25
|
+
echo '#!/bin/bash
|
26
|
+
svlogd -tt /var/vcap/bosh/log
|
27
|
+
' > /etc/sv/agent/log/run
|
28
|
+
|
29
|
+
# runit
|
30
|
+
chmod +x /etc/sv/agent/run /etc/sv/agent/log/run
|
31
|
+
|
32
|
+
ln -s /etc/sv/agent /etc/service/agent
|
33
|
+
|
34
|
+
cp $SRC_DIR/_empty_state.yml $bosh_dir/state.yml
|
35
|
+
|
36
|
+
# The bosh agent installs a config that rotates on size
|
37
|
+
mv /etc/cron.daily/logrotate /etc/cron.hourly/logrotate
|
38
|
+
|
39
|
+
popd
|
@@ -0,0 +1,63 @@
|
|
1
|
+
Veewee::Definition.declare({
|
2
|
+
:cpu_count => '1', :memory_size => '512',
|
3
|
+
:disk_size => '10140', :disk_format => 'VDI', :hostiocache => 'off',
|
4
|
+
:virtualbox => { :vm_options => ["pae" => "on", "ioapic" => "on"]},
|
5
|
+
:use_sata => false,
|
6
|
+
:os_type_id => 'Ubuntu_64',
|
7
|
+
:iso_file => "<%= @iso_filename %>",
|
8
|
+
:iso_src => "<%= @iso %>",
|
9
|
+
:iso_md5 => "<%= @iso_md5 %>",
|
10
|
+
:iso_download_timeout => "1000",
|
11
|
+
:boot_wait => "5", :boot_cmd_sequence => [
|
12
|
+
'<Esc><Esc><Enter>',
|
13
|
+
'/install/vmlinuz ',
|
14
|
+
'initrd=/install/initrd.gz ',
|
15
|
+
'noapic ',
|
16
|
+
'fb=false ', # don't bother using a framebuffer
|
17
|
+
'locale=en_US ', # Start installer in English
|
18
|
+
'console-setup/ask_detect=false ', # Don't ask to detect keyboard
|
19
|
+
'keyboard-configuration/layout=USA ', # set it to US qwerty
|
20
|
+
'keyboard-configuration/variant=USA ',
|
21
|
+
'hostname=%NAME% ', # Set the hostname
|
22
|
+
'preseed/url=http://%IP%:%PORT%/preseed.cfg ', # Fetch the rest from here
|
23
|
+
'auto ',
|
24
|
+
'debconf/frontend=noninteractive ',
|
25
|
+
'debian-installer=en_US ',
|
26
|
+
'kbd-chooser/method=us ',
|
27
|
+
'-- <Enter>'
|
28
|
+
],
|
29
|
+
|
30
|
+
:kickstart_port => "7122", :kickstart_timeout => "10000", :kickstart_file => "preseed.cfg",
|
31
|
+
:ssh_login_timeout => "10000", :ssh_user => "vcap", :ssh_password => "c1oudc0w", :ssh_key => "",
|
32
|
+
:ssh_host_port => "<%= @ssh_port %>", :ssh_guest_port => "22",
|
33
|
+
:sudo_cmd => "echo '%p'|sudo -S /bin/bash '%f'",
|
34
|
+
:shutdown_cmd => "shutdown -P now",
|
35
|
+
:postinstall_files => [
|
36
|
+
# Files with a leading _ are not executed
|
37
|
+
"_60-bosh-sysctl.conf",
|
38
|
+
"_monitrc",
|
39
|
+
"_ntpdate",
|
40
|
+
"_sysstat",
|
41
|
+
"_empty_state.yml",
|
42
|
+
"_variables.sh",
|
43
|
+
"_helpers.sh",
|
44
|
+
"_runonce",
|
45
|
+
"_bosh_agent.tar",
|
46
|
+
# The following scripts are run on the target vm one by one
|
47
|
+
|
48
|
+
"apt-upgrade.sh",
|
49
|
+
"timestamp.sh",
|
50
|
+
"sudo.sh",
|
51
|
+
"setup-bosh.sh",
|
52
|
+
"base-stemcell.sh",
|
53
|
+
"monit.sh",
|
54
|
+
"ruby.sh",
|
55
|
+
"bosh_agent.sh",
|
56
|
+
"vmware-tools.sh",
|
57
|
+
"network-cleanup.sh",
|
58
|
+
"zero-disk.sh",
|
59
|
+
"harden.sh",
|
60
|
+
"postinstall.sh",
|
61
|
+
],
|
62
|
+
:postinstall_timeout => "10000"
|
63
|
+
})
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -x
|
3
|
+
|
4
|
+
bosh_app_dir=/var/vcap
|
5
|
+
bosh_dir=${bosh_app_dir}/bosh
|
6
|
+
infrastructure="vsphere"
|
7
|
+
SRC_DIR=`pwd`
|
8
|
+
|
9
|
+
blobstore_path=${bosh_app_dir}/micro_bosh/data/cache
|
10
|
+
agent_host=localhost
|
11
|
+
agent_port=6969
|
12
|
+
agent_uri=http://vcap:vcap@${agent_host}:${agent_port}
|
13
|
+
export PATH=${bosh_app_dir}/bosh/bin:$PATH
|
14
|
+
|
15
|
+
# Packages
|
16
|
+
apt-get -y install genisoimage libpq-dev nc g++ libboost-program-options-dev libboost-serialization-dev libpqclient-dev libmysqlclient-dev libsqlite3-dev
|
17
|
+
|
18
|
+
# Install package compiler
|
19
|
+
if [ ! -f "$bosh_dir/bin/package_compiler" ]
|
20
|
+
then
|
21
|
+
mkdir -p /tmp/package_compiler
|
22
|
+
pushd /tmp/package_compiler
|
23
|
+
cp $SRC_DIR/_package_compiler.tar .
|
24
|
+
tar -xvf _package_compiler.tar
|
25
|
+
$bosh_dir/bin/gem install *.gem --no-ri --no-rdoc --local
|
26
|
+
popd
|
27
|
+
fi
|
28
|
+
|
29
|
+
mkdir -p ${bosh_app_dir}/bosh/blob
|
30
|
+
mkdir -p ${blobstore_path}
|
31
|
+
|
32
|
+
echo "Starting micro bosh compilation"
|
33
|
+
|
34
|
+
# Start agent
|
35
|
+
$bosh_dir/bin/bosh_agent -I ${infrastructure} -n ${agent_uri} -s ${blobstore_path} -p local &
|
36
|
+
agent_pid=$!
|
37
|
+
|
38
|
+
# Wait for agent to come up
|
39
|
+
for i in {1..10}
|
40
|
+
do
|
41
|
+
nc -z ${agent_host} ${agent_port} && break
|
42
|
+
sleep 1
|
43
|
+
done
|
44
|
+
|
45
|
+
# Start compiler
|
46
|
+
$bosh_dir/bin/package_compiler --cpi ${infrastructure} compile $SRC_DIR/_release.yml $SRC_DIR/_release.tgz ${blobstore_path} ${agent_uri}
|
47
|
+
|
48
|
+
kill -15 $agent_pid
|
49
|
+
|
50
|
+
# Wait for agent
|
51
|
+
for i in {1..5}
|
52
|
+
do
|
53
|
+
kill -0 $agent_pid && break
|
54
|
+
sleep 1
|
55
|
+
done
|
56
|
+
# Force kill if required
|
57
|
+
kill -0 $agent_pid || kill -9 $agent_pid
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -x
|
3
|
+
|
4
|
+
source _variables.sh
|
5
|
+
|
6
|
+
apt-get -y install libpam-dev
|
7
|
+
|
8
|
+
### stage bosh_monit
|
9
|
+
mkdir -p $bosh_dir/etc
|
10
|
+
cp $SRC_DIR/_monitrc $bosh_dir/etc/monitrc
|
11
|
+
chmod 0700 $bosh_dir/etc/monitrc
|
12
|
+
|
13
|
+
pushd /tmp
|
14
|
+
[ ! -f "monit-5.5.tar.gz" ] && wget http://mmonit.com/monit/dist/monit-5.5.tar.gz
|
15
|
+
tar xzvf monit-5.5.tar.gz
|
16
|
+
cd monit-5.5
|
17
|
+
./configure --prefix=$bosh_dir --without-ssl
|
18
|
+
make && make install
|
19
|
+
# monit refuses to start without an include file present
|
20
|
+
mkdir -p $bosh_app_dir/monit
|
21
|
+
touch /$bosh_app_dir/monit/empty.monitrc
|
22
|
+
popd
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -x
|
3
|
+
|
4
|
+
# Removing leftover leases and persistent rules
|
5
|
+
echo "cleaning up dhcp leases"
|
6
|
+
rm /var/lib/dhcp3/*
|
7
|
+
|
8
|
+
# Make sure Udev doesn't block our network
|
9
|
+
# http://6.ptmc.org/?p=164
|
10
|
+
echo "cleaning up udev rules"
|
11
|
+
rm /etc/udev/rules.d/70-persistent-net.rules
|
12
|
+
mkdir /etc/udev/rules.d/70-persistent-net.rules
|
13
|
+
rm -rf /dev/.udev/
|
14
|
+
rm /lib/udev/rules.d/75-persistent-net-generator.rules
|
15
|
+
|
16
|
+
echo "Adding a 2 sec delay to the interface up, to make the dhclient happy"
|
17
|
+
echo "pre-up sleep 2" >> /etc/network/interfaces
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -x
|
3
|
+
|
4
|
+
#import helpers scripts
|
5
|
+
source _variables.sh
|
6
|
+
|
7
|
+
### stage bosh_sysstat
|
8
|
+
cp $SRC_DIR/_sysstat /etc/default/sysstat
|
9
|
+
|
10
|
+
### stage bosh_sysctl
|
11
|
+
cp $SRC_DIR/_60-bosh-sysctl.conf /etc/sysctl.d/60-bosh-sysctl.conf
|
12
|
+
chmod 0644 /etc/sysctl.d/60-bosh-sysctl.conf
|
13
|
+
|
14
|
+
### stage bosh_ntpdate
|
15
|
+
# setup crontab for root to use ntpdate every 15 minutes
|
16
|
+
mkdir -p $bosh_dir/log
|
17
|
+
cp $SRC_DIR/_ntpdate $bosh_dir/bin/ntpdate
|
18
|
+
chmod 0755 $bosh_dir/bin/ntpdate
|
19
|
+
echo "0,15,30,45 * * * * ${bosh_dir}/bin/ntpdate" > /tmp/ntpdate.cron
|
20
|
+
crontab -u root /tmp/ntpdate.cron
|
21
|
+
rm /tmp/ntpdate.cron
|
22
|
+
|
23
|
+
### stage micro_bosh ???
|
24
|
+
|
25
|
+
sed -i -e 's/^\(timeout=.*\)$/timeout=0/g' /boot/grub/menu.lst
|
26
|
+
sed -i -e 's/^\(timeout=.*\)$/timeout=0/g' /boot/grub/grub.conf
|
27
|
+
|
28
|
+
|
29
|
+
### stage bosh_dpkg_list ??? How do we get back a list of things
|
30
|
+
# Create list of installed packages -- legal requirement
|
31
|
+
dpkg -l > $bosh_dir/stemcell_dpkg_l.out
|
32
|
+
|
33
|
+
# Clean out all the scripts
|
34
|
+
rm -f *.iso *.gem *.tar *.tgz
|
35
|
+
|
36
|
+
# install runonce
|
37
|
+
mkdir -p /etc/local/runonce.d/ran
|
38
|
+
cp $SRC_DIR/_runonce /usr/local/bin/runonce
|
39
|
+
chmod +x /usr/local/bin/runonce
|
40
|
+
|
41
|
+
# Do some firstboot clean up
|
42
|
+
# Regenerate ssh keys
|
43
|
+
/usr/local/bin/runonce "rm -f /etc/ssh/ssh_host_*"
|
44
|
+
/usr/local/bin/runonce "dpkg-reconfigure -fnoninteractive -pcritical openssh-server"
|
45
|
+
|
@@ -0,0 +1,87 @@
|
|
1
|
+
## Options to set on the command line
|
2
|
+
d-i debian-installer/locale string en_US.utf8
|
3
|
+
d-i console-setup/ask_detect boolean false
|
4
|
+
d-i console-setup/layout string USA
|
5
|
+
|
6
|
+
#d-i netcfg/get_hostname string dummy
|
7
|
+
d-i netcfg/get_hostname string unassigned-hostname
|
8
|
+
d-i netcfg/get_domain string unassigned-domain
|
9
|
+
|
10
|
+
# Continue without a default route
|
11
|
+
# Not working , specify a dummy in the DHCP
|
12
|
+
#d-i netcfg/no_default_route boolean
|
13
|
+
|
14
|
+
d-i time/zone string UTC
|
15
|
+
d-i clock-setup/utc-auto boolean true
|
16
|
+
d-i clock-setup/utc boolean true
|
17
|
+
|
18
|
+
d-i kbd-chooser/method select American English
|
19
|
+
|
20
|
+
d-i netcfg/wireless_wep string
|
21
|
+
|
22
|
+
d-i base-installer/kernel/override-image string linux-virtual
|
23
|
+
#d-i base-installer/kernel/override-image string linux-image-2.6.32-21-generic
|
24
|
+
|
25
|
+
# Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive
|
26
|
+
d-i debconf debconf/frontend select Noninteractive
|
27
|
+
|
28
|
+
d-i pkgsel/install-language-support boolean false
|
29
|
+
tasksel tasksel/first multiselect standard, ubuntu-server
|
30
|
+
|
31
|
+
#d-i partman-auto/method string regular
|
32
|
+
d-i partman-auto/method string lvm
|
33
|
+
#d-i partman-auto/purge_lvm_from_device boolean true
|
34
|
+
|
35
|
+
d-i partman-lvm/confirm boolean true
|
36
|
+
d-i partman-lvm/device_remove_lvm boolean true
|
37
|
+
d-i partman-auto/choose_recipe select atomic
|
38
|
+
|
39
|
+
d-i partman/confirm_write_new_label boolean true
|
40
|
+
d-i partman/confirm_nooverwrite boolean true
|
41
|
+
d-i partman/choose_partition select finish
|
42
|
+
d-i partman/confirm boolean true
|
43
|
+
|
44
|
+
#http://ubuntu-virginia.ubuntuforums.org/showthread.php?p=9626883
|
45
|
+
#Message: "write the changes to disk and configure lvm preseed"
|
46
|
+
#http://serverfault.com/questions/189328/ubuntu-kickstart-installation-using-lvm-waits-for-input
|
47
|
+
#preseed partman-lvm/confirm_nooverwrite boolean true
|
48
|
+
|
49
|
+
# Write the changes to disks and configure LVM?
|
50
|
+
d-i partman-lvm/confirm boolean true
|
51
|
+
d-i partman-lvm/confirm_nooverwrite boolean true
|
52
|
+
d-i partman-auto-lvm/guided_size string max
|
53
|
+
|
54
|
+
## Default user, we can get away with a recipe to change this
|
55
|
+
d-i passwd/user-fullname string vcap
|
56
|
+
d-i passwd/username string vcap
|
57
|
+
d-i passwd/user-password password c1oudc0w
|
58
|
+
d-i passwd/user-password-again password c1oudc0w
|
59
|
+
d-i user-setup/encrypt-home boolean false
|
60
|
+
d-i user-setup/allow-password-weak boolean true
|
61
|
+
|
62
|
+
## minimum is puppet and ssh and ntp
|
63
|
+
# Individual additional packages to install
|
64
|
+
d-i pkgsel/include string openssh-server ntp
|
65
|
+
|
66
|
+
# Whether to upgrade packages after debootstrap.
|
67
|
+
# Allowed values: none, safe-upgrade, full-upgrade
|
68
|
+
d-i pkgsel/upgrade select full-upgrade
|
69
|
+
|
70
|
+
d-i grub-installer/only_debian boolean true
|
71
|
+
d-i grub-installer/with_other_os boolean true
|
72
|
+
d-i finish-install/reboot_in_progress note
|
73
|
+
|
74
|
+
#For the update
|
75
|
+
d-i pkgsel/update-policy select none
|
76
|
+
|
77
|
+
# debconf-get-selections --install
|
78
|
+
#Use mirror
|
79
|
+
#d-i apt-setup/use_mirror boolean true
|
80
|
+
#d-i mirror/country string manual
|
81
|
+
#choose-mirror-bin mirror/protocol string http
|
82
|
+
#choose-mirror-bin mirror/http/hostname string 192.168.4.150
|
83
|
+
#choose-mirror-bin mirror/http/directory string /ubuntu
|
84
|
+
#choose-mirror-bin mirror/suite select maverick
|
85
|
+
#d-i debian-installer/allow_unauthenticated string true
|
86
|
+
|
87
|
+
choose-mirror-bin mirror/http/proxy string
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -x
|
3
|
+
|
4
|
+
source _variables.sh
|
5
|
+
|
6
|
+
### stage bosh_ruby
|
7
|
+
apt-get -y update
|
8
|
+
apt-get -y install build-essential zlib1g-dev libssl-dev libxml2-dev libxslt-dev libreadline6-dev libyaml-dev
|
9
|
+
|
10
|
+
# install libyaml
|
11
|
+
pushd /tmp
|
12
|
+
[ ! -f "yaml-0.1.4.tar.gz" ] && wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
|
13
|
+
tar zxf yaml-0.1.4.tar.gz
|
14
|
+
cd yaml-0.1.4
|
15
|
+
./configure
|
16
|
+
make
|
17
|
+
make install
|
18
|
+
echo /usr/local/lib >> /etc/ld.so.conf
|
19
|
+
ldconfig
|
20
|
+
popd
|
21
|
+
|
22
|
+
# install ruby
|
23
|
+
pushd /tmp
|
24
|
+
if [ ! -f "$bosh_dir/bin/ruby" ]
|
25
|
+
then
|
26
|
+
[ ! -f "ruby-1.9.3-p374.tar.gz" ] && wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p374.tar.gz
|
27
|
+
tar zxf ruby-1.9.3-p374.tar.gz
|
28
|
+
cd ruby-1.9.3-p374
|
29
|
+
./configure --prefix=$bosh_dir --disable-install-doc
|
30
|
+
make
|
31
|
+
make install
|
32
|
+
fi
|
33
|
+
popd
|
34
|
+
# Install rubygems
|
35
|
+
pushd /tmp
|
36
|
+
if [ ! -f "$bosh_dir/bin/gem" ]
|
37
|
+
then
|
38
|
+
[ ! -f "rubygems-1.8.24.tgz" ] && wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgz
|
39
|
+
tar zxf rubygems-1.8.24.tgz
|
40
|
+
cd rubygems-1.8.24
|
41
|
+
$bosh_dir/bin/ruby setup.rb --no-format-executable
|
42
|
+
fi
|
43
|
+
popd
|
44
|
+
|
45
|
+
echo "PATH=$bosh_dir/bin:$PATH" > /etc/environment
|
46
|
+
source /etc/environment
|
47
|
+
|
48
|
+
$bosh_dir/bin/gem update --system --no-ri --no-rdoc
|
49
|
+
|
50
|
+
mkdir -p $bosh_dir/etc
|
51
|
+
echo "gem: --no-rdoc --no-ri" >> $bosh_dir/etc/gemrc
|
52
|
+
|
53
|
+
#Install gems
|
54
|
+
$bosh_dir/bin/gem install bundler --no-ri --no-rdoc
|