Created
January 6, 2012 00:53
-
-
Save zhengjia/1568261 to your computer and use it in GitHub Desktop.
Vagrant box with 'ubuntu' as the default user
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
# modify from veewee | |
require 'digest/md5' | |
CURRENT_DIR = File.dirname(__FILE__) | |
PRESEED_MD5 = "#{Digest::MD5.file("#{CURRENT_DIR}/preseed.cfg").hexdigest}" | |
Veewee::Session.declare( { | |
:boot_cmd_sequence => [ | |
"<Esc><Esc><Enter>", | |
"/install/vmlinuz ", | |
"noapic ", | |
"auto-install/enable", | |
"console-setup/ask_detect=false ", | |
"console-setup/modelcode=pc105 ", | |
"console-setup/layoutcode=us ", | |
"debconf/priority=critical ", | |
"debconf/frontend=noninteractive ", | |
"debian-installer=en_US ", | |
"debian-installer/locale=en_US ", | |
"debian-installer/framebuffer=false ", | |
"initrd=/install/initrd.gz ", | |
"kbd-chooser/method=us ", | |
"netcfg/get_hostname=%NAME% ", | |
"netcfg/dhcp_timeout=60 ", | |
"netcfg/choose_interface=auto ", | |
"preseed/interactive=false ", | |
"preseed/url=http://%IP%:%PORT%/preseed.cfg ", | |
"preseed/url/checksum=#{PRESEED_MD5} ", | |
"DEBCONF_DEBUG=5 ", | |
"-- <Enter>" | |
], | |
:boot_wait => "10", | |
:cpu_count => '1', | |
:disk_size => '10140', | |
:disk_format => 'VMDK', | |
:hostiocache => 'on', | |
:iso_download_timeout => "60", | |
:iso_file => "ubuntu-10.04.3-server-amd64.iso", | |
:iso_src => "http://releases.ubuntu.com/10.04.3/ubuntu-10.04.3-server-amd64.iso", | |
:iso_md5 => "84b43b7bbee85d0af8e11b778c8d1290", | |
:kickstart_file => "preseed.cfg", | |
:kickstart_port => "7122", | |
:kickstart_timeout => "60", | |
:memory_size => '384', | |
:os_type_id => 'Ubuntu_64', | |
:postinstall_files => [ "postinstall.sh" ], | |
:postinstall_timeout => "10000", | |
:ssh_login_timeout => "60", | |
:ssh_user => "ubuntu", | |
:ssh_password => "ubuntu", | |
:ssh_key => "", | |
:ssh_host_port => "7222", | |
:ssh_guest_port => "22", | |
:sudo_cmd => "echo '%p'|sudo -S sh '%f'", | |
:shutdown_cmd => "shutdown -h now", | |
}) |
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
vagrant basebox define BOX-NAME ubuntu-10.04.3-server-amd64-alt2 | |
vagrant basebox build BOX-NAME | |
vagrant basebox export BOX-NAME | |
vagrant box add BOX-NAME BOX-NAME.box |
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
# modify from veewee | |
# 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 git-core zlib1g-dev libssl-dev libreadline5-dev libcurl4-openssl-dev libyaml-dev curl | |
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 | |
if [ ! -f /opt/ruby-1.9.3-p0/bin/ruby ]; then | |
cd /tmp | |
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz | |
tar zxf ruby-1.9.3-p0.tar.gz | |
cd ruby-1.9.3-p0 | |
./configure --prefix=/opt/ruby-1.9.3-p0 --disable-install-doc | |
make && make install | |
fi | |
/opt/ruby-1.9.3-p0/bin/gem install chef --no-rdoc --no-ri | |
/opt/ruby-1.9.3-p0/bin/gem install bundler --pre --no-rdoc --no-ri | |
# 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-1.9.3-p0/bin'> /etc/profile.d/vagrantruby.sh | |
# Installing vagrant keys | |
mkdir /home/ubuntu/.ssh | |
chmod 700 /home/ubuntu/.ssh | |
cd /home/ubuntu/.ssh | |
wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys | |
chmod 600 /home/ubuntu/.ssh/authorized_keys | |
chown -R ubuntu /home/ubuntu/.ssh | |
# Installing the virtualbox guest additions | |
VBOX_VERSION=$(cat /home/ubuntu/.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 |
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
# modify from veewee | |
## Options to set on the command line | |
d-i debian-installer/locale string en_US | |
d-i console-setup/ask_detect boolean false | |
d-i console-setup/layout string Belgium | |
#d-i netcfg/get_hostname string dummy | |
d-i netcfg/get_hostname string unassigned-hostname | |
d-i netcfg/get_domain string unassigned-domain | |
# Continue without a default route | |
# Not working , specify a dummy in the DHCP | |
#d-i netcfg/no_default_route boolean | |
d-i time/zone string Europe/Brussels | |
d-i clock-setup/utc-auto boolean true | |
d-i clock-setup/utc boolean true | |
d-i kbd-chooser/method select Belgian | |
d-i netcfg/wireless_wep string | |
d-i base-installer/kernel/override-image string linux-server | |
#d-i base-installer/kernel/override-image string linux-image-2.6.32-21-generic | |
# Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive | |
d-i debconf debconf/frontend select Noninteractive | |
d-i pkgsel/install-language-support boolean false | |
tasksel tasksel/first multiselect standard, ubuntu-server | |
#d-i partman-auto/method string regular | |
d-i partman-auto/method string lvm | |
#d-i partman-auto/purge_lvm_from_device boolean true | |
d-i partman-lvm/confirm boolean true | |
d-i partman-lvm/device_remove_lvm boolean true | |
d-i partman-auto/choose_recipe select atomic | |
d-i partman/confirm_write_new_label boolean true | |
d-i partman/confirm_nooverwrite boolean true | |
d-i partman/choose_partition select finish | |
d-i partman/confirm boolean true | |
#http://ubuntu-virginia.ubuntuforums.org/showthread.php?p=9626883 | |
#Message: "write the changes to disk and configure lvm preseed" | |
#http://serverfault.com/questions/189328/ubuntu-kickstart-installation-using-lvm-waits-for-input | |
#preseed partman-lvm/confirm_nooverwrite boolean true | |
# Write the changes to disks and configure LVM? | |
d-i partman-lvm/confirm boolean true | |
d-i partman-lvm/confirm_nooverwrite boolean true | |
d-i partman-auto-lvm/guided_size string max | |
## Default user, we can get away with a recipe to change this | |
d-i passwd/user-fullname string ubuntu | |
d-i passwd/username string ubuntu | |
d-i passwd/user-password password ubuntu | |
d-i passwd/user-password-again password ubuntu | |
d-i user-setup/encrypt-home boolean false | |
d-i user-setup/allow-password-weak boolean true | |
## minimum is puppet and ssh and ntp | |
# Individual additional packages to install | |
d-i pkgsel/include string openssh-server ntp acpid | |
# Whether to upgrade packages after debootstrap. | |
# Allowed values: none, safe-upgrade, full-upgrade | |
d-i pkgsel/upgrade select full-upgrade | |
d-i grub-installer/only_debian boolean true | |
d-i grub-installer/with_other_os boolean true | |
d-i finish-install/reboot_in_progress note | |
#For the update | |
d-i pkgsel/update-policy select none | |
# debconf-get-selections --install | |
#Use mirror | |
#d-i apt-setup/use_mirror boolean true | |
#d-i mirror/country string manual | |
#choose-mirror-bin mirror/protocol string http | |
#choose-mirror-bin mirror/http/hostname string 192.168.4.150 | |
#choose-mirror-bin mirror/http/directory string /ubuntu | |
#choose-mirror-bin mirror/suite select maverick | |
#d-i debian-installer/allow_unauthenticated string true | |
choose-mirror-bin mirror/http/proxy string |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment