Created
June 28, 2011 21:30
-
-
Save evansd/1052287 to your computer and use it in GitHub Desktop.
postinstall sript from vagrant example box (having it somewhere web-accessible is easiest way to get it on to newly created VMs)
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
# 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 remove apparmor | |
apt-get -y install linux-headers-$(uname -r) build-essential | |
apt-get -y install zlib1g zlib1g-dev libxml2 libxml2-dev libxslt-dev libssl-dev openssl libreadline5-dev | |
apt-get clean | |
# Remove this file to avoid dhclient issues with networking | |
rm -f /etc/udev/rules.d/70-persistent-net.rules | |
# Setup sudo to allow no-password sudo for "admin". Additionally, | |
# make "admin" an exempt group so that the PATH is inherited. | |
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/ruby-1.8.7-p334.tar.gz | |
tar xvzf ruby-1.8.7-p334.tar.gz | |
cd ruby-1.8.7-p334 | |
./configure --prefix=/opt/ruby | |
make | |
make install | |
cd .. | |
rm -rf ruby-1.8.7-p334* | |
# Install RubyGems 1.7.2 | |
wget http://production.cf.rubygems.org/rubygems/rubygems-1.7.2.tgz | |
tar xzf rubygems-1.7.2.tgz | |
cd rubygems-1.7.2 | |
/opt/ruby/bin/ruby setup.rb | |
cd .. | |
rm -rf rubygems-1.7.2* | |
# Install Chef & Puppet | |
/opt/ruby/bin/gem install chef --no-ri --no-rdoc | |
/opt/ruby/bin/gem install puppet --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 | |
# Install insecure Vagrant SSH keys | |
mkdir /home/vagrant/.ssh | |
chmod 700 /home/vagrant/.ssh | |
cd /home/vagrant/.ssh | |
wget --no-check-certificate 'http://github.com/mitchellh/vagrant/raw/master/keys/vagrant.pub' -O authorized_keys | |
chown -R vagrant /home/vagrant/.ssh | |
# Install 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 free space to aid VM compression | |
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I found this file locate :
in vagrant example box: http://files.vagrantup.com/precise32.box
Is this script auto be invoke when
vagrant up
? Where can I find related document? Thanks.