diff --git a/ansible-repository b/ansible-repository index 57f5ec4..8abf1ba 160000 --- a/ansible-repository +++ b/ansible-repository @@ -1 +1 @@ -Subproject commit 57f5ec4b9f7c0502f35388846664f3b730a234d7 +Subproject commit 8abf1ba16ccd5ebe6e98938bd330c9b247edf38c diff --git a/veewee/definitions/ubuntu-13.04-server-amd64/definition.rb b/veewee/definitions/ubuntu-13.04-server-amd64/definition.rb new file mode 100644 index 0000000..4a1d34f --- /dev/null +++ b/veewee/definitions/ubuntu-13.04-server-amd64/definition.rb @@ -0,0 +1,35 @@ +Veewee::Session.declare({ + :cpu_count => '1', + :memory_size=> '2048', + :disk_size => '10140', + :disk_format => 'VDI', + :hostiocache => 'off', + :os_type_id => 'Ubuntu_64', + :iso_file => "ubuntu-13.04-server-amd64.iso", + :iso_src => "http://releases.ubuntu.com/13.04/ubuntu-13.04-server-amd64.iso", + :iso_md5 => '4bd3270bde86d7e4e017e3847a4af485', + :iso_download_timeout => "1000", + :boot_wait => "4", + :boot_cmd_sequence => [ + '', + '/install/vmlinuz noapic preseed/url=http://%IP%:%PORT%/preseed.cfg ', + 'debian-installer=en_US auto locale=en_US kbd-chooser/method=us ', + 'hostname=%NAME% ', + 'fb=false debconf/frontend=noninteractive ', + 'keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=us keyboard-configuration/variant=us console-setup/ask_detect=false ', + 'initrd=/install/initrd.gz -- ' +], + :kickstart_port => "7122", + :kickstart_timeout => "10000", + :kickstart_file => "preseed.cfg", + :ssh_login_timeout => "10000", + :ssh_user => "vagrant", + :ssh_password => "vagrant", + :ssh_key => "", + :ssh_host_port => "7222", + :ssh_guest_port => "22", + :sudo_cmd => "echo '%p'|sudo -S sh '%f'", + :shutdown_cmd => "shutdown -P now", + :postinstall_files => [ "postinstall.sh"], + :postinstall_timeout => "10000" +}) diff --git a/veewee/definitions/ubuntu-13.04-server-amd64/postinstall.sh b/veewee/definitions/ubuntu-13.04-server-amd64/postinstall.sh new file mode 100644 index 0000000..c54009c --- /dev/null +++ b/veewee/definitions/ubuntu-13.04-server-amd64/postinstall.sh @@ -0,0 +1,63 @@ +# 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 clean + +# Installing the virtualbox guest additions +apt-get -y install dkms +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 + +# Setup sudo to allow no-password sudo for "admin" +groupadd -r admin +usermod -a -G admin vagrant +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 + +# 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 + +# 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/dhcp/* + +# 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 diff --git a/veewee/definitions/ubuntu-13.04-server-amd64/preseed.cfg b/veewee/definitions/ubuntu-13.04-server-amd64/preseed.cfg new file mode 100644 index 0000000..ecb4d2a --- /dev/null +++ b/veewee/definitions/ubuntu-13.04-server-amd64/preseed.cfg @@ -0,0 +1,87 @@ +## Options to set on the command line +d-i debian-installer/locale string en_US.utf8 +d-i console-setup/ask_detect boolean false +d-i console-setup/layout string us + +#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 UTC +d-i clock-setup/utc-auto boolean true +d-i clock-setup/utc boolean true + +d-i kbd-chooser/method select American English + +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 vagrant +d-i passwd/username string vagrant +d-i passwd/user-password password vagrant +d-i passwd/user-password-again password vagrant +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 + +# 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