Created
April 15, 2012 13:43
-
-
Save adnams/2392866 to your computer and use it in GitHub Desktop.
Veewee postnistall.cfg customised for Chef
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# postinstall.sh created from Mitchell's official lucid32/64 baseboxes | |
date > /etc/vagrant_box_build_time | |
# Apt-install various things necessary for Ruby, guest additions, | |
# etc., and remove optional things to trim down the machine. | |
apt-get -y update | |
apt-get -y upgrade | |
apt-get -y install linux-headers-$(uname -r) build-essential | |
apt-get -y install zlib1g-dev libssl-dev libreadline5-dev | |
apt-get clean | |
# Setup sudo to allow no-password sudo for "admin" | |
cp /etc/sudoers /etc/sudoers.orig | |
sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers | |
sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers | |
# Install NFS client | |
apt-get -y install nfs-common | |
# Install Ruby from source in /opt so that users of Vagrant | |
# can install their own Rubies using packages or however. | |
# We must install the 1.8.x series since Puppet doesn't support | |
# Ruby 1.9 yet. | |
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz | |
tar xvzf ruby-1.9.3-p125.tar.gz | |
cd ruby-1.9.3-p125 | |
./configure --prefix=/opt/ruby | |
make | |
make install | |
cd .. | |
rm -rf ruby-1.9.3-p125* | |
# Install RubyGems 1.7.2 | |
wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.17.tgz | |
tar xzf rubygems-1.8.17.tgz | |
cd rubygems-1.8.17 | |
/opt/ruby/bin/ruby setup.rb | |
cd .. | |
rm -rf rubygems-1.8.17* | |
# Installing chef & Puppet | |
/opt/ruby/bin/gem install chef --no-ri --no-rdoc | |
# Add /opt/ruby/bin to the global path as the last resort so | |
# Ruby, RubyGems, and Chef/Puppet are visible | |
echo 'PATH=$PATH:/opt/ruby/bin/'> /etc/profile.d/vagrantruby.sh | |
# Installing vagrant keys | |
mkdir /home/vagrant/.ssh | |
chmod 700 /home/vagrant/.ssh | |
cd /home/vagrant/.ssh | |
wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys | |
chmod 600 /home/vagrant/.ssh/authorized_keys | |
chown -R vagrant /home/vagrant/.ssh | |
# Installing the virtualbox guest additions | |
VBOX_VERSION=$(cat /home/vagrant/.vbox_version) | |
cd /tmp | |
wget http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso | |
mount -o loop VBoxGuestAdditions_$VBOX_VERSION.iso /mnt | |
sh /mnt/VBoxLinuxAdditions.run | |
umount /mnt | |
rm VBoxGuestAdditions_$VBOX_VERSION.iso | |
# Remove items used for building, since they aren't needed anymore | |
apt-get -y remove linux-headers-$(uname -r) build-essential | |
apt-get -y autoremove | |
# Zero out the free space to save space in the final image: | |
dd if=/dev/zero of=/EMPTY bs=1M | |
rm -f /EMPTY | |
# Removing leftover leases and persistent rules | |
echo "cleaning up dhcp leases" | |
rm /var/lib/dhcp3/* | |
# Make sure Udev doesn't block our network | |
# http://6.ptmc.org/?p=164 | |
echo "cleaning up udev rules" | |
rm /etc/udev/rules.d/70-persistent-net.rules | |
mkdir /etc/udev/rules.d/70-persistent-net.rules | |
rm -rf /dev/.udev/ | |
rm /lib/udev/rules.d/75-persistent-net-generator.rules | |
echo "Adding a 2 sec delay to the interface up, to make the dhclient happy" | |
echo "pre-up sleep 2" >> /etc/network/interfaces | |
exit | |
exit |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment