vbox 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. data/.gitignore +14 -0
  2. data/Gemfile +5 -0
  3. data/Gemfile.lock +68 -0
  4. data/README.md +5 -0
  5. data/Rakefile +91 -0
  6. data/bin/vbox +73 -0
  7. data/lib/java/README.txt +5 -0
  8. data/lib/java/dir2floppy.jar +0 -0
  9. data/lib/java/dir2floppy.java +134 -0
  10. data/lib/vagrant_init.rb +6 -0
  11. data/lib/vbox.rb +2 -0
  12. data/lib/vbox/command.rb +82 -0
  13. data/lib/vbox/config.rb +5 -0
  14. data/lib/vbox/export.rb +65 -0
  15. data/lib/vbox/scancode.rb +208 -0
  16. data/lib/vbox/session.rb +893 -0
  17. data/lib/vbox/shell.rb +54 -0
  18. data/lib/vbox/ssh.rb +193 -0
  19. data/lib/vbox/transaction.rb +122 -0
  20. data/lib/vbox/utils.rb +26 -0
  21. data/lib/vbox/version.rb +3 -0
  22. data/lib/vbox/web.rb +48 -0
  23. data/templates/CentOS-5.7-i386-netboot/definition.rb +16 -0
  24. data/templates/CentOS-5.7-i386-netboot/ks.cfg +45 -0
  25. data/templates/CentOS-5.7-i386-netboot/postinstall.sh +53 -0
  26. data/templates/CentOS-5.7-x86_64-netboot/definition.rb +16 -0
  27. data/templates/CentOS-5.7-x86_64-netboot/ks.cfg +45 -0
  28. data/templates/CentOS-5.7-x86_64-netboot/postinstall.sh +60 -0
  29. data/templates/CentOS-6.0-i386-netboot/definition.rb +16 -0
  30. data/templates/CentOS-6.0-i386-netboot/ks.cfg +52 -0
  31. data/templates/CentOS-6.0-i386-netboot/postinstall.sh +30 -0
  32. data/templates/CentOS-6.0-i386/definition.rb +17 -0
  33. data/templates/CentOS-6.0-i386/ks.cfg +47 -0
  34. data/templates/CentOS-6.0-i386/postinstall.sh +48 -0
  35. data/templates/CentOS-6.0-x86_64-netboot/definition.rb +16 -0
  36. data/templates/CentOS-6.0-x86_64-netboot/ks.cfg +52 -0
  37. data/templates/CentOS-6.0-x86_64-netboot/postinstall.sh +30 -0
  38. data/templates/CentOS-6.0-x86_64/definition.rb +17 -0
  39. data/templates/CentOS-6.0-x86_64/ks.cfg +47 -0
  40. data/templates/CentOS-6.0-x86_64/postinstall.sh +48 -0
  41. data/templates/Debian-6.0.3-amd64-netboot/definition.rb +42 -0
  42. data/templates/Debian-6.0.3-amd64-netboot/postinstall.sh +80 -0
  43. data/templates/Debian-6.0.3-amd64-netboot/preseed.cfg +42 -0
  44. data/templates/Debian-6.0.3-i386-netboot/definition.rb +44 -0
  45. data/templates/Debian-6.0.3-i386-netboot/postinstall.sh +80 -0
  46. data/templates/Debian-6.0.3-i386-netboot/preseed.cfg +42 -0
  47. data/templates/Fedora-15-i386-netboot/definition.rb +17 -0
  48. data/templates/Fedora-15-i386-netboot/ks.cfg +82 -0
  49. data/templates/Fedora-15-i386-netboot/postinstall.sh +18 -0
  50. data/templates/Fedora-15-i386/definition.rb +17 -0
  51. data/templates/Fedora-15-i386/ks.cfg +64 -0
  52. data/templates/Fedora-15-i386/postinstall.sh +33 -0
  53. data/templates/Fedora-15-x86_64-netboot/definition.rb +29 -0
  54. data/templates/Fedora-15-x86_64-netboot/ks.cfg +64 -0
  55. data/templates/Fedora-15-x86_64-netboot/postinstall.sh +33 -0
  56. data/templates/Fedora-15-x86_64/definition.rb +17 -0
  57. data/templates/Fedora-15-x86_64/ks.cfg +64 -0
  58. data/templates/Fedora-15-x86_64/postinstall.sh +33 -0
  59. data/templates/Sysrescuecd-2.0.0-experimental/autorun0 +3 -0
  60. data/templates/Sysrescuecd-2.0.0-experimental/definition.rb +20 -0
  61. data/templates/archlinux-i386-netboot/aif.cfg +34 -0
  62. data/templates/archlinux-i386-netboot/definition.rb +29 -0
  63. data/templates/archlinux-i386-netboot/postinstall.sh +87 -0
  64. data/templates/archlinux-i386-netboot/postinstall2.sh +28 -0
  65. data/templates/archlinux-i386/aif.cfg +33 -0
  66. data/templates/archlinux-i386/definition.rb +29 -0
  67. data/templates/archlinux-i386/postinstall.sh +106 -0
  68. data/templates/archlinux-x86_64-netboot/aif.cfg +34 -0
  69. data/templates/archlinux-x86_64-netboot/definition.rb +29 -0
  70. data/templates/archlinux-x86_64-netboot/postinstall.sh +90 -0
  71. data/templates/archlinux-x86_64-netboot/postinstall2.sh +28 -0
  72. data/templates/archlinux-x86_64/aif.cfg +33 -0
  73. data/templates/archlinux-x86_64/definition.rb +29 -0
  74. data/templates/archlinux-x86_64/postinstall.sh +90 -0
  75. data/templates/archlinux-x86_64/postinstall2.sh +38 -0
  76. data/templates/freebsd-8.2-experimental/definition.rb +19 -0
  77. data/templates/freebsd-8.2-experimental/postinstall.sh +191 -0
  78. data/templates/freebsd-8.2-pcbsd-i386-netboot/definition.rb +35 -0
  79. data/templates/freebsd-8.2-pcbsd-i386-netboot/pcinstall.fbg.cfg +58 -0
  80. data/templates/freebsd-8.2-pcbsd-i386-netboot/postinstall.sh +93 -0
  81. data/templates/freebsd-8.2-pcbsd-i386/definition.rb +31 -0
  82. data/templates/freebsd-8.2-pcbsd-i386/pcinstall.fbg.cfg +57 -0
  83. data/templates/freebsd-8.2-pcbsd-i386/postinstall.sh +93 -0
  84. data/templates/gentoo-latest-i386-experimental/definition.rb +29 -0
  85. data/templates/gentoo-latest-i386-experimental/postinstall.sh +184 -0
  86. data/templates/openSUSE-11.4-DVD-i586/autoinst_de.xml +1284 -0
  87. data/templates/openSUSE-11.4-DVD-i586/autoinst_en.xml +1284 -0
  88. data/templates/openSUSE-11.4-DVD-i586/definition.rb +28 -0
  89. data/templates/openSUSE-11.4-DVD-i586/postinstall.sh +43 -0
  90. data/templates/openSUSE-11.4-DVD-x86_64/autoinst_de.xml +1459 -0
  91. data/templates/openSUSE-11.4-DVD-x86_64/autoinst_en.xml +1459 -0
  92. data/templates/openSUSE-11.4-DVD-x86_64/definition.rb +28 -0
  93. data/templates/openSUSE-11.4-DVD-x86_64/postinstall.sh +43 -0
  94. data/templates/openSUSE-11.4-NET-i586/autoinst_de.xml +1278 -0
  95. data/templates/openSUSE-11.4-NET-i586/autoinst_en.xml +1278 -0
  96. data/templates/openSUSE-11.4-NET-i586/definition.rb +28 -0
  97. data/templates/openSUSE-11.4-NET-i586/postinstall.sh +43 -0
  98. data/templates/openSUSE-11.4-NET-x86_64/autoinst_de.xml +1453 -0
  99. data/templates/openSUSE-11.4-NET-x86_64/autoinst_en.xml +1453 -0
  100. data/templates/openSUSE-11.4-NET-x86_64/definition.rb +28 -0
  101. data/templates/openSUSE-11.4-NET-x86_64/postinstall.sh +43 -0
  102. data/templates/solaris-11-express-i386/auto_install/ai.dtd +58 -0
  103. data/templates/solaris-11-express-i386/auto_install/ai_manifest.xml +241 -0
  104. data/templates/solaris-11-express-i386/auto_install/configuration.dtd +44 -0
  105. data/templates/solaris-11-express-i386/auto_install/default.xml +124 -0
  106. data/templates/solaris-11-express-i386/auto_install/default.xml.orig +124 -0
  107. data/templates/solaris-11-express-i386/auto_install/sc_profiles/static_network.xml +105 -0
  108. data/templates/solaris-11-express-i386/auto_install/software.dtd +105 -0
  109. data/templates/solaris-11-express-i386/auto_install/target.dtd +196 -0
  110. data/templates/solaris-11-express-i386/default.xml +121 -0
  111. data/templates/solaris-11-express-i386/definition.rb +65 -0
  112. data/templates/solaris-11-express-i386/postinstall.sh +98 -0
  113. data/templates/ubuntu-10.04.3-server-amd64/definition.rb +54 -0
  114. data/templates/ubuntu-10.04.3-server-amd64/postinstall.sh +90 -0
  115. data/templates/ubuntu-10.04.3-server-amd64/preseed.cfg +87 -0
  116. data/templates/ubuntu-10.04.3-server-i386/definition.rb +24 -0
  117. data/templates/ubuntu-10.04.3-server-i386/postinstall.sh +91 -0
  118. data/templates/ubuntu-10.04.3-server-i386/preseed.cfg +87 -0
  119. data/templates/ubuntu-11.10-server-amd64/definition.rb +35 -0
  120. data/templates/ubuntu-11.10-server-amd64/postinstall.sh +90 -0
  121. data/templates/ubuntu-11.10-server-amd64/preseed.cfg +87 -0
  122. data/templates/ubuntu-11.10-server-i386/definition.rb +35 -0
  123. data/templates/ubuntu-11.10-server-i386/postinstall.sh +90 -0
  124. data/templates/ubuntu-11.10-server-i386/preseed.cfg +87 -0
  125. data/validation/features/steps/ssh_steps.rb +169 -0
  126. data/validation/support/env.rb +1 -0
  127. data/validation/vagrant-private.key +27 -0
  128. data/validation/vagrant.feature +52 -0
  129. data/validation/vagrant.pub +1 -0
  130. data/vbox.gemspec +32 -0
  131. metadata +338 -0
@@ -0,0 +1,16 @@
1
+ Veewee::Session.declare({
2
+ :cpu_count => '1', :memory_size=> '392',
3
+ :disk_size => '10140', :disk_format => 'VDI', :hostiocache => 'off', :ioapic => 'on', :pae => 'on',
4
+ :os_type_id => 'RedHat_64',
5
+ :iso_file => "CentOS-6.0-x86_64-netinstall.iso",
6
+ :iso_src => "http://be.mirror.eurid.eu/centos/6.0/isos/x86_64/CentOS-6.0-x86_64-netinstall.iso",
7
+ :iso_md5 => "d13da95c29e585ee15cf403b89468243",
8
+ :iso_download_timeout => 1000,
9
+ :boot_wait => "15", :boot_cmd_sequence => [ '<Tab> text ks=http://%IP%:%PORT%/ks.cfg<Enter>' ],
10
+ :kickstart_port => "7122", :kickstart_timeout => 10000, :kickstart_file => "ks.cfg",
11
+ :ssh_login_timeout => "100", :ssh_user => "vagrant", :ssh_password => "vagrant", :ssh_key => "",
12
+ :ssh_host_port => "7222", :ssh_guest_port => "22",
13
+ :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
14
+ :shutdown_cmd => "/sbin/halt -h -p",
15
+ :postinstall_files => [ "postinstall.sh"], :postinstall_timeout => 10000
16
+ })
@@ -0,0 +1,52 @@
1
+ install
2
+ url --url=http://be.mirror.eurid.eu/centos/6.0/os/x86_64/
3
+ lang en_US.UTF-8
4
+ keyboard us
5
+ network --bootproto dhcp
6
+ rootpw --iscrypted $1$damlkd,f$UC/u5pUts5QiU3ow.CSso/
7
+ firewall --enabled --trust eth0 --ssh
8
+ authconfig --enableshadow --enablemd5
9
+ selinux --disabled
10
+ timezone Europe/Brussels
11
+ bootloader --location=mbr
12
+
13
+ text
14
+ skipx
15
+ zerombr
16
+
17
+ clearpart --all --initlabel
18
+ autopart
19
+
20
+ auth --useshadow --enablemd5
21
+ firstboot --disabled
22
+ reboot
23
+
24
+ repo --name=epel --baseurl=http://download.fedora.redhat.com/pub/epel/6/x86_64/ --includepkgs='ruby-augeas,ruby-shadow'
25
+ repo --name=puppetlabs --baseurl=http://yum.puppetlabs.com/el/6/products/x86_64 --includepkgs='puppet,facter'
26
+
27
+ %packages
28
+ @ core
29
+ ruby
30
+ ruby-devel
31
+ rubygems
32
+ kernel-devel
33
+ gcc
34
+ gcc-c++
35
+ bzip2
36
+ make
37
+ zlib-devel
38
+ openssl-devel
39
+ readline-devel
40
+ sqlite-devel
41
+ puppet
42
+ facter
43
+
44
+ -ipw2100-firmware
45
+ -ipw2200-firmware
46
+ -ivtv-firmware
47
+
48
+ %post
49
+ /usr/sbin/groupadd vagrant
50
+ /usr/sbin/useradd vagrant -g vagrant -G wheel
51
+ echo "vagrant"|passwd --stdin vagrant
52
+ echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
@@ -0,0 +1,30 @@
1
+ #http://chrisadams.me.uk/2010/05/10/setting-up-a-centos-base-box-for-development-and-testing-with-vagrant/
2
+
3
+ date > /etc/vagrant_box_build_time
4
+
5
+ yum -y erase wireless-tools gtk2 libX11 hicolor-icon-theme avahi freetype bitstream-vera-fonts
6
+ yum -y clean all
7
+
8
+ gem install --no-ri --no-rdoc chef
9
+
10
+ # Installing vagrant keys
11
+ mkdir /home/vagrant/.ssh
12
+ chmod 700 /home/vagrant/.ssh
13
+ cd /home/vagrant/.ssh
14
+ wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys
15
+ chown -R vagrant /home/vagrant/.ssh
16
+
17
+ # Installing the virtualbox guest additions
18
+ VBOX_VERSION=$(cat /home/vagrant/.vbox_version)
19
+ cd /tmp
20
+ wget http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso
21
+ mount -o loop VBoxGuestAdditions_$VBOX_VERSION.iso /mnt
22
+ sh /mnt/VBoxLinuxAdditions.run
23
+ umount /mnt
24
+ rm VBoxGuestAdditions_$VBOX_VERSION.iso
25
+
26
+ sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers
27
+
28
+ dd if=/dev/zero of=/tmp/clean || rm /tmp/clean
29
+
30
+ exit
@@ -0,0 +1,17 @@
1
+ Veewee::Session.declare({
2
+ :cpu_count => '1', :memory_size=> '384',
3
+ :disk_size => '10140', :disk_format => 'VDI', :hostiocache => 'off',
4
+ :os_type_id => 'RedHat_64',
5
+ :iso_file => "CentOS-6.0-x86_64-bin-DVD1.iso", :iso_src => "http://be.mirror.eurid.eu/centos/6.0/isos/x86_64/CentOS-6.0-x86_64-bin-DVD1.iso", :iso_md5 => "7c148e0a1b330186adef66ee3e2d433d", :iso_download_timeout => 1000,
6
+ :iso_download_instructions => "We can not download the ISO , you need to download it yourself and put it in the iso directory\n"+
7
+ "- URL: http://isoredirect.centos.org/centos/6/isos/x86_64/ ",
8
+ :boot_wait => "10", :boot_cmd_sequence => [
9
+ '<Tab> text ks=http://%IP%:%PORT%/ks.cfg<Enter>'
10
+ ],
11
+ :kickstart_port => "7122", :kickstart_timeout => 10000, :kickstart_file => "ks.cfg",
12
+ :ssh_login_timeout => "100", :ssh_user => "vagrant", :ssh_password => "vagrant", :ssh_key => "",
13
+ :ssh_host_port => "7222", :ssh_guest_port => "22",
14
+ :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
15
+ :shutdown_cmd => "/sbin/halt -h -p",
16
+ :postinstall_files => [ "postinstall.sh"], :postinstall_timeout => 10000
17
+ })
@@ -0,0 +1,47 @@
1
+ install
2
+ cdrom
3
+ lang en_US.UTF-8
4
+ keyboard us
5
+ network --bootproto=dhcp
6
+ rootpw --iscrypted $1$damlkd,f$UC/u5pUts5QiU3ow.CSso/
7
+ firewall --enabled --service=ssh
8
+ authconfig --enableshadow --passalgo=sha512
9
+ selinux --disabled
10
+ timezone Europe/Brussels
11
+ bootloader --location=mbr
12
+
13
+ text
14
+ skipx
15
+ zerombr
16
+
17
+ clearpart --all --initlabel
18
+ autopart
19
+
20
+ auth --useshadow --enablemd5
21
+ firstboot --disabled
22
+ reboot
23
+
24
+ repo --name=updates --baseurl=http://mirror.centos.org/centos/6/updates/x86_64 --includepkgs='ruby' --excludepkgs='*'
25
+
26
+ %packages --ignoremissing
27
+ @core
28
+ ruby
29
+ kernel-devel-`uname -r`
30
+ gcc
31
+ bzip2
32
+ make
33
+ gcc-c++
34
+ zlib-devel
35
+ openssl-devel
36
+ readline-devel
37
+ sqlite-devel
38
+
39
+ -ipw2100-firmware
40
+ -ipw2200-firmware
41
+ -ivtv-firmware
42
+
43
+ %post
44
+ /usr/sbin/groupadd vagrant
45
+ /usr/sbin/useradd vagrant -g vagrant -G wheel
46
+ echo "vagrant"|passwd --stdin vagrant
47
+ echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
@@ -0,0 +1,48 @@
1
+ #http://chrisadams.me.uk/2010/05/10/setting-up-a-centos-base-box-for-development-and-testing-with-vagrant/
2
+
3
+ date > /etc/vagrant_box_build_time
4
+
5
+ cat > /etc/yum.repos.d/puppetlabs.repo << EOM
6
+ [puppetlabs]
7
+ name=puppetlabs
8
+ baseurl=http://yum.puppetlabs.com/el/6/products/\$basearch
9
+ enabled=1
10
+ gpgcheck=0
11
+ EOM
12
+
13
+ cat > /etc/yum.repos.d/epel.repo << EOM
14
+ [epel]
15
+ name=epel
16
+ baseurl=http://download.fedoraproject.org/pub/epel/6/\$basearch
17
+ enabled=1
18
+ gpgcheck=0
19
+ EOM
20
+
21
+ yum -y install puppet facter ruby-devel rubygems
22
+ yum -y erase wireless-tools gtk2 libX11 hicolor-icon-theme avahi freetype bitstream-vera-fonts
23
+ yum -y clean all
24
+ rm /etc/yum.repos.d/{puppetlabs,epel}.repo
25
+
26
+ gem install --no-ri --no-rdoc chef
27
+
28
+ # Installing vagrant keys
29
+ mkdir /home/vagrant/.ssh
30
+ chmod 700 /home/vagrant/.ssh
31
+ cd /home/vagrant/.ssh
32
+ wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys
33
+ chown -R vagrant /home/vagrant/.ssh
34
+
35
+ # Installing the virtualbox guest additions
36
+ VBOX_VERSION=$(cat /home/vagrant/.vbox_version)
37
+ cd /tmp
38
+ wget http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso
39
+ mount -o loop VBoxGuestAdditions_$VBOX_VERSION.iso /mnt
40
+ sh /mnt/VBoxLinuxAdditions.run
41
+ umount /mnt
42
+ rm VBoxGuestAdditions_$VBOX_VERSION.iso
43
+
44
+ sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers
45
+
46
+ dd if=/dev/zero of=/tmp/clean || rm /tmp/clean
47
+
48
+ exit
@@ -0,0 +1,42 @@
1
+ Veewee::Session.declare({
2
+ :cpu_count => '1',
3
+ :memory_size=> '256',
4
+ :disk_size => '10140',
5
+ :disk_format => 'VDI',
6
+ :hostiocache => 'off',
7
+ :os_type_id => 'Debian_64',
8
+ :iso_file => "debian-6.0.3-amd64-netinst.iso",
9
+ :iso_src => "http://cdimage.debian.org/debian-cd/6.0.3/amd64/iso-cd/debian-6.0.3-amd64-netinst.iso",
10
+ :iso_md5 => "b663727d7f5b572c329cea8e2ff5e29c",
11
+ :iso_download_timeout => "1000",
12
+ :boot_wait => "10",
13
+ :boot_cmd_sequence => [
14
+ '<Esc>',
15
+ 'install ',
16
+ 'preseed/url=http://%IP%:%PORT%/preseed.cfg ',
17
+ 'debian-installer=en_US ',
18
+ 'auto ',
19
+ 'locale=en_US ',
20
+ 'kbd-chooser/method=us ',
21
+ 'netcfg/get_hostname=%NAME% ',
22
+ 'netcfg/get_domain=vagrantup.com ',
23
+ 'fb=false ',
24
+ 'debconf/frontend=noninteractive ',
25
+ 'console-setup/ask_detect=false ',
26
+ 'console-keymaps-at/keymap=us ',
27
+ '<Enter>'
28
+ ],
29
+ :kickstart_port => "7122",
30
+ :kickstart_timeout => "10000",
31
+ :kickstart_file => "preseed.cfg",
32
+ :ssh_login_timeout => "10000",
33
+ :ssh_user => "vagrant",
34
+ :ssh_password => "vagrant",
35
+ :ssh_key => "",
36
+ :ssh_host_port => "7222",
37
+ :ssh_guest_port => "22",
38
+ :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
39
+ :shutdown_cmd => "halt -p",
40
+ :postinstall_files => [ "postinstall.sh" ],
41
+ :postinstall_timeout => "10000"
42
+ })
@@ -0,0 +1,80 @@
1
+ date > /etc/vagrant_box_build_time
2
+
3
+ # Update the box
4
+ apt-get -y update
5
+ apt-get -y install linux-headers-$(uname -r) build-essential
6
+ apt-get -y install zlib1g-dev libssl-dev libreadline5-dev
7
+ apt-get -y install curl unzip
8
+ apt-get clean
9
+
10
+ # Set up sudo
11
+ cp /etc/sudoers /etc/sudoers.orig
12
+ sed -i -e 's/%sudo ALL=(ALL) ALL/%sudo ALL=NOPASSWD:ALL/g' /etc/sudoers
13
+
14
+ # Install Ruby from packages
15
+ apt-get -y install ruby ruby-dev libruby1.8 ri
16
+
17
+ # Install Rubygems from source
18
+ rg_ver=1.6.2
19
+ curl -o /tmp/rubygems-${rg_ver}.zip \
20
+ "http://production.cf.rubygems.org/rubygems/rubygems-${rg_ver}.zip"
21
+ (cd /tmp && unzip rubygems-${rg_ver}.zip && \
22
+ cd rubygems-${rg_ver} && ruby setup.rb --no-format-executable)
23
+ rm -rf /tmp/rubygems-${rg_ver} /tmp/rubygems-${rg_ver}.zip
24
+
25
+ # Install Chef & Puppet
26
+ gem install chef --no-ri --no-rdoc
27
+ gem install puppet --no-ri --no-rdoc
28
+
29
+ # Install vagrant keys
30
+ mkdir -p /home/vagrant/.ssh
31
+ chmod 700 /home/vagrant/.ssh
32
+ cd /home/vagrant/.ssh
33
+ curl -Lo /home/vagrant/.ssh/authorized_keys \
34
+ 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub'
35
+ chmod 0600 /home/vagrant/.ssh/authorized_keys
36
+ chown -R vagrant:vagrant /home/vagrant/.ssh
37
+
38
+ # Tweak sshd to prevent DNS resolution (speed up logins)
39
+ echo 'UseDNS no' >> /etc/ssh/sshd_config
40
+
41
+ # Customize the message of the day
42
+ echo 'Welcome to your Vagrant-built virtual machine.' > /var/run/motd
43
+
44
+ # The netboot installs the VirtualBox support (old) so we have to remove it
45
+ /etc/init.d/virtualbox-ose-guest-utils stop
46
+ rmmod vboxguest
47
+ aptitude -y purge virtualbox-ose-guest-x11 virtualbox-ose-guest-dkms virtualbox-ose-guest-utils
48
+
49
+ # Install the VirtualBox guest additions
50
+ VBOX_VERSION=$(cat /home/vagrant/.vbox_version)
51
+ curl -Lo /tmp/VBoxGuestAdditions_$VBOX_VERSION.iso \
52
+ "http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso"
53
+ mount -o loop /tmp/VBoxGuestAdditions_$VBOX_VERSION.iso /mnt
54
+ yes|sh /mnt/VBoxLinuxAdditions.run
55
+ umount /mnt
56
+
57
+ # Clean up
58
+ apt-get -y remove linux-headers-$(uname -r) build-essential
59
+ apt-get -y autoremove
60
+
61
+ rm /tmp/VBoxGuestAdditions_$VBOX_VERSION.iso
62
+
63
+ # Zero out the free space to save space in the final image:
64
+ dd if=/dev/zero of=/EMPTY bs=1M
65
+ rm -f /EMPTY
66
+
67
+ # Removing leftover leases and persistent rules
68
+ echo "cleaning up dhcp leases"
69
+ rm /var/lib/dhcp3/*
70
+
71
+ # Make sure Udev doesn't block our network
72
+ echo "cleaning up udev rules"
73
+ rm /etc/udev/rules.d/70-persistent-net.rules
74
+ mkdir /etc/udev/rules.d/70-persistent-net.rules
75
+ rm -rf /dev/.udev/
76
+ rm /lib/udev/rules.d/75-persistent-net-generator.rules
77
+
78
+ echo "Adding a 2 sec delay to the interface up, to make the dhclient happy"
79
+ echo "pre-up sleep 2" >> /etc/network/interfaces
80
+ exit
@@ -0,0 +1,42 @@
1
+ d-i debian-installer/locale string en_US
2
+ d-i console-keymaps-at/keymap select us
3
+ d-i netcfg/choose_interface select auto
4
+ d-i netcfg/get_domain string vagrantup.com
5
+ d-i netcfg/wireless_wep string
6
+ d-i mirror/country string manual
7
+ d-i mirror/http/hostname string http.us.debian.org
8
+ d-i mirror/http/directory string /debian
9
+ d-i mirror/http/proxy string
10
+ d-i clock-setup/utc boolean true
11
+ d-i time/zone string UTC
12
+ d-i clock-setup/ntp boolean true
13
+ d-i partman-auto/disk string /dev/sda
14
+ d-i partman-auto/method string lvm
15
+ d-i partman-lvm/device_remove_lvm boolean true
16
+ d-i partman-md/device_remove_md boolean true
17
+ d-i partman-lvm/confirm boolean true
18
+ d-i partman-lvm/confirm_nooverwrite boolean true
19
+ d-i partman/choose_partition select finish
20
+ d-i partman-auto-lvm/guided_size string max
21
+ d-i partman-auto/choose_recipe select atomic
22
+ d-i partman/default_filesystem string ext3
23
+ d-i partman/confirm_write_new_label boolean true
24
+ d-i partman/confirm boolean true
25
+ d-i partman/confirm_nooverwrite boolean true
26
+ d-i passwd/root-login boolean false
27
+ d-i passwd/root-password password vagrant
28
+ d-i passwd/root-password-again password vagrant
29
+ d-i passwd/user-fullname string Vagrant User
30
+ d-i passwd/username string vagrant
31
+ d-i passwd/user-password password vagrant
32
+ d-i passwd/user-password-again password vagrant
33
+ d-i user-setup/encrypt-home boolean false
34
+ d-i user-setup/allow-password-weak boolean true
35
+ d-i passwd/user-default-groups string audio cdrom video admin
36
+ tasksel tasksel/first multiselect standard
37
+ d-i pkgsel/include string openssh-server ntp acpid sudo bzip2
38
+ d-i pkgsel/upgrade select none
39
+ popularity-contest popularity-contest/participate boolean false
40
+ d-i grub-installer/only_debian boolean true
41
+ d-i grub-installer/with_other_os boolean true
42
+ d-i finish-install/reboot_in_progress note
@@ -0,0 +1,44 @@
1
+ #Thanks to Fletcher Nichol - https://github.com/fnichol
2
+
3
+ Veewee::Session.declare({
4
+ :cpu_count => '1',
5
+ :memory_size=> '256',
6
+ :disk_size => '10140',
7
+ :disk_format => 'VDI',
8
+ :hostiocache => 'off',
9
+ :os_type_id => 'Debian',
10
+ :iso_file => "debian-6.0.3-i386-netinst.iso",
11
+ :iso_src => "http://cdimage.debian.org/debian-cd/6.0.3/i386/iso-cd/debian-6.0.3-i386-netinst.iso",
12
+ :iso_md5 => "bf10748a0b867912727b248d2e21e8ba",
13
+ :iso_download_timeout => "1000",
14
+ :boot_wait => "10",
15
+ :boot_cmd_sequence => [
16
+ '<Esc>',
17
+ 'install ',
18
+ 'preseed/url=http://%IP%:%PORT%/preseed.cfg ',
19
+ 'debian-installer=en_US ',
20
+ 'auto ',
21
+ 'locale=en_US ',
22
+ 'kbd-chooser/method=us ',
23
+ 'netcfg/get_hostname=%NAME% ',
24
+ 'netcfg/get_domain=vagrantup.com ',
25
+ 'fb=false ',
26
+ 'debconf/frontend=noninteractive ',
27
+ 'console-setup/ask_detect=false ',
28
+ 'console-keymaps-at/keymap=us ',
29
+ '<Enter>'
30
+ ],
31
+ :kickstart_port => "7122",
32
+ :kickstart_timeout => "10000",
33
+ :kickstart_file => "preseed.cfg",
34
+ :ssh_login_timeout => "10000",
35
+ :ssh_user => "vagrant",
36
+ :ssh_password => "vagrant",
37
+ :ssh_key => "",
38
+ :ssh_host_port => "7222",
39
+ :ssh_guest_port => "22",
40
+ :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
41
+ :shutdown_cmd => "halt -p",
42
+ :postinstall_files => [ "postinstall.sh" ],
43
+ :postinstall_timeout => "10000"
44
+ })
@@ -0,0 +1,80 @@
1
+ date > /etc/vagrant_box_build_time
2
+
3
+ # Update the box
4
+ apt-get -y update
5
+ apt-get -y install linux-headers-$(uname -r) build-essential
6
+ apt-get -y install zlib1g-dev libssl-dev libreadline5-dev
7
+ apt-get -y install curl unzip
8
+ apt-get clean
9
+
10
+ # Set up sudo
11
+ cp /etc/sudoers /etc/sudoers.orig
12
+ sed -i -e 's/%sudo ALL=(ALL) ALL/%sudo ALL=NOPASSWD:ALL/g' /etc/sudoers
13
+
14
+ # Install Ruby from packages
15
+ apt-get -y install ruby ruby-dev libruby1.8 ri
16
+
17
+ # Install Rubygems from source
18
+ rg_ver=1.6.2
19
+ curl -o /tmp/rubygems-${rg_ver}.zip \
20
+ "http://production.cf.rubygems.org/rubygems/rubygems-${rg_ver}.zip"
21
+ (cd /tmp && unzip rubygems-${rg_ver}.zip && \
22
+ cd rubygems-${rg_ver} && ruby setup.rb --no-format-executable)
23
+ rm -rf /tmp/rubygems-${rg_ver} /tmp/rubygems-${rg_ver}.zip
24
+
25
+ # Install Chef & Puppet
26
+ gem install chef --no-ri --no-rdoc
27
+ gem install puppet --no-ri --no-rdoc
28
+
29
+ # Install vagrant keys
30
+ mkdir -p /home/vagrant/.ssh
31
+ chmod 700 /home/vagrant/.ssh
32
+ cd /home/vagrant/.ssh
33
+ curl -Lo /home/vagrant/.ssh/authorized_keys \
34
+ 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub'
35
+ chmod 0600 /home/vagrant/.ssh/authorized_keys
36
+ chown -R vagrant:vagrant /home/vagrant/.ssh
37
+
38
+ # Tweak sshd to prevent DNS resolution (speed up logins)
39
+ echo 'UseDNS no' >> /etc/ssh/sshd_config
40
+
41
+ # Customize the message of the day
42
+ echo 'Welcome to your Vagrant-built virtual machine.' > /var/run/motd
43
+
44
+ # The netboot installs the VirtualBox support (old) so we have to remove it
45
+ /etc/init.d/virtualbox-ose-guest-utils stop
46
+ rmmod vboxguest
47
+ aptitude -y purge virtualbox-ose-guest-x11 virtualbox-ose-guest-dkms virtualbox-ose-guest-utils
48
+
49
+ # Install the VirtualBox guest additions
50
+ VBOX_VERSION=$(cat /home/vagrant/.vbox_version)
51
+ curl -Lo /tmp/VBoxGuestAdditions_$VBOX_VERSION.iso \
52
+ "http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso"
53
+ mount -o loop /tmp/VBoxGuestAdditions_$VBOX_VERSION.iso /mnt
54
+ yes|sh /mnt/VBoxLinuxAdditions.run
55
+ umount /mnt
56
+
57
+ # Clean up
58
+ apt-get -y remove linux-headers-$(uname -r) build-essential
59
+ apt-get -y autoremove
60
+
61
+ rm /tmp/VBoxGuestAdditions_$VBOX_VERSION.iso
62
+
63
+ # Zero out the free space to save space in the final image:
64
+ dd if=/dev/zero of=/EMPTY bs=1M
65
+ rm -f /EMPTY
66
+
67
+ # Removing leftover leases and persistent rules
68
+ echo "cleaning up dhcp leases"
69
+ rm /var/lib/dhcp3/*
70
+
71
+ # Make sure Udev doesn't block our network
72
+ echo "cleaning up udev rules"
73
+ rm /etc/udev/rules.d/70-persistent-net.rules
74
+ mkdir /etc/udev/rules.d/70-persistent-net.rules
75
+ rm -rf /dev/.udev/
76
+ rm /lib/udev/rules.d/75-persistent-net-generator.rules
77
+
78
+ echo "Adding a 2 sec delay to the interface up, to make the dhclient happy"
79
+ echo "pre-up sleep 2" >> /etc/network/interfaces
80
+ exit