veewee 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. data/Gemfile +1 -1
  2. data/Gemfile.lock +75 -0
  3. data/lib/veewee.rb +2 -0
  4. data/lib/veewee/command.rb +1 -59
  5. data/lib/veewee/command/basebox.rb +63 -0
  6. data/lib/veewee/command/basebox_build.rb +32 -0
  7. data/lib/veewee/command/basebox_define.rb +28 -0
  8. data/lib/veewee/command/basebox_destroy.rb +22 -0
  9. data/lib/veewee/command/basebox_export.rb +22 -0
  10. data/lib/veewee/command/basebox_list.rb +23 -0
  11. data/lib/veewee/command/basebox_ostypes.rb +23 -0
  12. data/lib/veewee/command/basebox_templates.rb +23 -0
  13. data/lib/veewee/command/basebox_undefine.rb +22 -0
  14. data/lib/veewee/command/basebox_validate.rb +26 -0
  15. data/lib/veewee/config.rb +1 -2
  16. data/lib/veewee/version.rb +1 -1
  17. data/templates/CentOS-6.0-x86_64-minimal/definition.rb +1 -1
  18. data/templates/CentOS-6.0-x86_64-minimal/postinstall.sh +12 -4
  19. data/templates/CentOS-6.2-x86_64-minimal/definition.rb +15 -0
  20. data/templates/CentOS-6.2-x86_64-minimal/ks.cfg +37 -0
  21. data/templates/CentOS-6.2-x86_64-minimal/postinstall.sh +50 -0
  22. data/templates/SLES-11-SP1-DVD-i586-GM/autoinst_de.xml +1127 -0
  23. data/templates/SLES-11-SP1-DVD-i586-GM/autoinst_en.xml +1127 -0
  24. data/templates/SLES-11-SP1-DVD-i586-GM/definition.rb +37 -0
  25. data/templates/SLES-11-SP1-DVD-i586-GM/postinstall.sh +43 -0
  26. data/templates/SLES-11-SP1-DVD-x86_64-GM/autoinst_de.xml +1171 -0
  27. data/templates/SLES-11-SP1-DVD-x86_64-GM/autoinst_en.xml +1171 -0
  28. data/templates/SLES-11-SP1-DVD-x86_64-GM/definition.rb +37 -0
  29. data/templates/SLES-11-SP1-DVD-x86_64-GM/postinstall.sh +43 -0
  30. data/templates/funtoo-latest-generic_64-stable/definition.rb +34 -0
  31. data/templates/funtoo-latest-generic_64-stable/postinstall.sh +177 -0
  32. data/templates/funtoo-latest-generic_64-stable/postinstall2.sh +83 -0
  33. data/templates/gentoo-latest-x86_64-experimental/definition.rb +4 -4
  34. data/templates/gentoo-latest-x86_64-experimental/postinstall.sh +2 -2
  35. data/templates/openSUSE-12.1-DVD+NET-i586/autoinst_de.xml +1483 -0
  36. data/templates/openSUSE-12.1-DVD+NET-i586/autoinst_en.xml +1483 -0
  37. data/templates/openSUSE-12.1-DVD+NET-i586/definition.rb +44 -0
  38. data/templates/openSUSE-12.1-DVD+NET-i586/postinstall.sh +43 -0
  39. data/templates/openSUSE-12.1-DVD+NET-x86_64/autoinst_de.xml +1727 -0
  40. data/templates/openSUSE-12.1-DVD+NET-x86_64/autoinst_en.xml +1727 -0
  41. data/templates/openSUSE-12.1-DVD+NET-x86_64/definition.rb +44 -0
  42. data/templates/openSUSE-12.1-DVD+NET-x86_64/postinstall.sh +43 -0
  43. data/templates/openbsd50_amd64/README +28 -0
  44. data/templates/openbsd50_amd64/definition.rb +84 -0
  45. data/templates/openbsd50_amd64/postinstall.sh +81 -0
  46. data/templates/openbsd50_i386/.definition.rb.swp +0 -0
  47. data/templates/openbsd50_i386/README +28 -0
  48. data/templates/openbsd50_i386/definition.rb +84 -0
  49. data/templates/openbsd50_i386/postinstall.sh +80 -0
  50. data/templates/windows-2008R1-serverstandard-amd64/Autounattend.xml +146 -0
  51. data/templates/windows-2008R1-serverstandard-amd64/README.md +134 -0
  52. data/templates/windows-2008R1-serverstandard-amd64/cygwin-setup.exe +0 -0
  53. data/templates/windows-2008R1-serverstandard-amd64/definition.rb +114 -0
  54. data/templates/windows-2008R1-serverstandard-amd64/install-cygwin-sshd.bat +40 -0
  55. data/templates/windows-2008R1-serverstandard-amd64/install-guest-additions.bat +5 -0
  56. data/templates/windows-2008R1-serverstandard-amd64/install-winrm.bat +14 -0
  57. data/templates/windows-2008R1-serverstandard-amd64/oracle-cert.cer +0 -0
  58. data/templates/windows-2008R1-serverstandard-amd64/postinstall.sh +74 -0
  59. data/templates/windows-2008R1-serverstandard-amd64/sudo +2 -0
  60. data/templates/windows-2008R1-serverstandard-amd64/winrm.rb +8 -0
  61. data/templates/windows-2008R2-amd64/cygwin-setup.exe +0 -0
  62. data/templates/windows-2008R2-amd64/install-winrm.bat +2 -0
  63. data/templates/windows-2008R2-serverstandard-amd64/Autounattend.xml +147 -0
  64. data/templates/windows-2008R2-serverstandard-amd64/README.md +142 -0
  65. data/templates/windows-2008R2-serverstandard-amd64/definition.rb +44 -0
  66. data/templates/windows-2008R2-serverstandard-amd64/install-cygwin-sshd.bat +41 -0
  67. data/templates/windows-2008R2-serverstandard-amd64/install-winrm.bat +11 -0
  68. data/templates/windows-2008R2-serverstandard-amd64/oracle-cert.cer +0 -0
  69. data/templates/windows-2008R2-serverstandard-amd64/postinstall.sh +74 -0
  70. data/templates/windows-7-enterprise-amd64/Autounattend.xml +149 -0
  71. data/templates/windows-7-enterprise-amd64/README.md +52 -0
  72. data/templates/windows-7-enterprise-amd64/definition.rb +39 -0
  73. data/templates/windows-7-enterprise-amd64/install-cygwin-sshd.bat +40 -0
  74. data/templates/windows-7-enterprise-amd64/install-winrm.bat +14 -0
  75. data/templates/windows-7-enterprise-amd64/oracle-cert.cer +0 -0
  76. data/templates/windows-7-enterprise-amd64/postinstall.sh +74 -0
  77. data/templates/windows-7-enterprise-i386/Autounattend.xml +151 -0
  78. data/templates/windows-7-enterprise-i386/README.md +169 -0
  79. data/templates/windows-7-enterprise-i386/definition.rb +40 -0
  80. data/templates/windows-7-enterprise-i386/install-cygwin-sshd.bat +40 -0
  81. data/templates/windows-7-enterprise-i386/install-winrm.bat +14 -0
  82. data/templates/windows-7-enterprise-i386/oracle-cert.cer +0 -0
  83. data/templates/windows-7-enterprise-i386/postinstall.sh +74 -0
  84. data/templates/windows-7-premium-amd64/Autounattend.xml +152 -0
  85. data/templates/windows-7-premium-amd64/README.md +171 -0
  86. data/templates/windows-7-premium-amd64/definition.rb +38 -0
  87. data/templates/windows-7-premium-amd64/install-chefclient.bat +44 -0
  88. data/templates/windows-7-premium-amd64/install-winrm.bat +11 -0
  89. data/templates/windows-7-premium-amd64/oracle-cert.cer +0 -0
  90. data/templates/windows-7-premium-amd64/postinstall.sh +124 -0
  91. data/templates/windows-7-premium-amd64/winrm.rb +8 -0
  92. data/templates/windows-7-professional-amd64/Autounattend.xml +152 -0
  93. data/templates/windows-7-professional-amd64/README.md +171 -0
  94. data/templates/windows-7-professional-amd64/definition.rb +41 -0
  95. data/templates/windows-7-professional-amd64/install-cygwin-sshd.bat +40 -0
  96. data/templates/windows-7-professional-amd64/install-winrm.bat +14 -0
  97. data/templates/windows-7-professional-amd64/oracle-cert.cer +0 -0
  98. data/templates/windows-7-professional-amd64/postinstall.sh +74 -0
  99. data/templates/windows-7-ultimate-amd64/Autounattend.xml +152 -0
  100. data/templates/windows-7-ultimate-amd64/README.md +89 -0
  101. data/templates/windows-7-ultimate-amd64/definition.rb +41 -0
  102. data/templates/windows-7-ultimate-amd64/install-cygwin-sshd.bat +40 -0
  103. data/templates/windows-7-ultimate-amd64/install-winrm.bat +14 -0
  104. data/templates/windows-7-ultimate-amd64/oracle-cert.cer +0 -0
  105. data/templates/windows-7-ultimate-amd64/postinstall.sh +74 -0
  106. data/templates/windows-7sp1-ultimate-amd64/Autounattend.xml +152 -0
  107. data/templates/windows-7sp1-ultimate-amd64/README.md +89 -0
  108. data/templates/windows-7sp1-ultimate-amd64/definition.rb +42 -0
  109. data/templates/windows-7sp1-ultimate-amd64/install-cygwin-sshd.bat +40 -0
  110. data/templates/windows-7sp1-ultimate-amd64/install-winrm.bat +14 -0
  111. data/templates/windows-7sp1-ultimate-amd64/oracle-cert.cer +0 -0
  112. data/templates/windows-7sp1-ultimate-amd64/postinstall.sh +74 -0
  113. data/templates/windows-8-preview-dev-amd64/Autounattend.xml +140 -0
  114. data/templates/windows-8-preview-dev-amd64/README.md +134 -0
  115. data/templates/windows-8-preview-dev-amd64/cygwin-setup.exe +0 -0
  116. data/templates/windows-8-preview-dev-amd64/definition.rb +114 -0
  117. data/templates/windows-8-preview-dev-amd64/install-cygwin-sshd.bat +38 -0
  118. data/templates/windows-8-preview-dev-amd64/install-winrm.bat +11 -0
  119. data/templates/windows-8-preview-dev-amd64/oracle-cert.cer +0 -0
  120. data/templates/windows-8-preview-dev-amd64/postinstall.sh +122 -0
  121. data/templates/windows-8-preview-dev-amd64/winrm.rb +8 -0
  122. data/veewee.gemspec +3 -2
  123. metadata +162 -34
@@ -0,0 +1,44 @@
1
+ Veewee::Session.declare({
2
+ :os_type_id => 'OpenSUSE_64',
3
+ :cpu_count => '1',
4
+ :memory_size => '512',
5
+ :disk_size => '20480',
6
+ :disk_format => 'VDI',
7
+ :hostiocache => 'off',
8
+ :iso_file => "openSUSE-12.1-DVD-x86_64.iso",
9
+ :iso_src => "http://download.opensuse.org/distribution/12.1/iso/openSUSE-12.1-DVD-x86_64.iso",
10
+ :iso_md5 => "4cfe8229111ef723ae7aa541fd2c87b7",
11
+ ### disable prev three lines and enable next three lines for NET install
12
+ #:iso_file => "openSUSE-12.1-NET-x86_64.iso",
13
+ #:iso_src => "http://download.opensuse.org/distribution/12.1/iso/openSUSE-12.1-NET-x86_64.iso",
14
+ #:iso_md5 => "4b6f9142faadd95a25a7d81ebd656acf",
15
+ :iso_download_timeout => "1000",
16
+ :boot_wait => "10",
17
+ :boot_cmd_sequence => [
18
+ '<Esc><Enter>',
19
+ 'linux netdevice=eth0 netsetup=dhcp',
20
+ ' install=cd:/',
21
+ ### disable prev line and enable next line for NET install
22
+ #' install=http://download.opensuse.org/distribution/12.1/repo/oss/ insecure=1',
23
+ ' lang=en_US autoyast=http://%IP%:%PORT%/autoinst_en.xml',
24
+ ### disable prev line and enable next line to install with german settings
25
+ #' lang=de_DE autoyast=http://%IP%:%PORT%/autoinst_de.xml',
26
+ ' textmode=1',
27
+ '<Enter>'
28
+ ],
29
+ :kickstart_port => "7122",
30
+ :kickstart_timeout => "10000",
31
+ :kickstart_file => ["autoinst_en.xml", "autoinst_en.xml"],
32
+ ### disable prev line and enable next line to install with german settings
33
+ #:kickstart_file => ["autoinst_de.xml", "autoinst_de.xml"],
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 => "shutdown -P now",
42
+ :postinstall_files => ["postinstall.sh"],
43
+ :postinstall_timeout => "10000"
44
+ })
@@ -0,0 +1,43 @@
1
+ #
2
+ # postinstall.sh
3
+ #
4
+
5
+ date > /etc/vagrant_box_build_time
6
+
7
+ # install vagrant key
8
+ echo -e "\ninstall vagrant key ..."
9
+ mkdir -m 0700 /home/vagrant/.ssh
10
+ cd /home/vagrant/.ssh
11
+ wget --no-check-certificate -O authorized_keys https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub
12
+ chmod 0600 /home/vagrant/.ssh/authorized_keys
13
+ chown -R vagrant.users /home/vagrant/.ssh
14
+
15
+ # update sudoers
16
+ echo -e "\nupdate sudoers ..."
17
+ echo -e "\n# added by veewee/postinstall.sh" >> /etc/sudoers
18
+ echo -e "vagrant ALL=(ALL) NOPASSWD: ALL\n" >> /etc/sudoers
19
+
20
+ # speed-up remote logins
21
+ echo -e "\nspeed-up remote logins ..."
22
+ echo -e "\n# added by veewee/postinstall.sh" >> /etc/ssh/sshd_config
23
+ echo -e "UseDNS no\n" >> /etc/ssh/sshd_config
24
+
25
+ # install chef and puppet
26
+ echo -e "\ninstall chef and puppet ..."
27
+ gem install chef --no-ri --no-rdoc
28
+ gem install puppet --no-ri --no-rdoc
29
+
30
+ # install the virtualbox guest additions
31
+ echo -e "\ninstall the virtualbox guest additions ..."
32
+ zypper --non-interactive remove `rpm -qa virtualbox-guest-*`
33
+ VBOX_VERSION=$(cat /home/vagrant/.vbox_version)
34
+ cd /tmp
35
+ wget http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso
36
+ #wget http://192.168.178.10/VBoxGuestAdditions_$VBOX_VERSION.iso
37
+ mount -o loop VBoxGuestAdditions_$VBOX_VERSION.iso /mnt
38
+ sh /mnt/VBoxLinuxAdditions.run
39
+ umount /mnt
40
+ rm -f VBoxGuestAdditions_$VBOX_VERSION.iso
41
+
42
+ echo -e "\nall done.\n"
43
+ exit
@@ -0,0 +1,28 @@
1
+ The boxes come with:
2
+ - ports system already installed
3
+ - puppet and chef
4
+ - check the postinstall.sh script to see what is built in the box on top of the default install
5
+ - add/remove to your heart's content
6
+
7
+ a. Easy to use boxes for experimentation
8
+ - with puppet
9
+ - with chef
10
+ - with whatever else you can dream of :)
11
+
12
+ b. Mount
13
+ # freebsd mouting NFS patch for FreeBSD
14
+ # https://github.com/mitchellh/vagrant/commit/8a0a1bddb5afc6b99cab595d6f3cc9a95bb1a509
15
+ # OpenBSD will need patching to use it as NFS host
16
+ From the validation steps just the mount step fails
17
+ Virtualbox mount can be achieved using NFS mounts, it is not possible using the VBox tools since you can't compile them on OpenBSD
18
+ 1. you can have your host expose NFS mounts that can be mounted by the Openbsd guest (checkout the vagrant documentation on using NFS mounts)
19
+ 2. another way can be to work with vagrant in Puppet-server / chef-server mode since it will get manifests over the network from the puppet/chef server.
20
+ 3. use a shell provisioner and scp/rsync your manifests from the host to the guest
21
+
22
+
23
+ c. Wait times
24
+ I've commented in all the steps in the OpenBSD install (definitions.rb)
25
+ Adjust the <Wait> times if your machine is slower/faster than those times.
26
+
27
+ d. More on puppet usage with OpenBSD
28
+ # http://puppetlabs.com/blog/guest-post-a-puffy-in-the-corporate-aquarium-the-sequel/
@@ -0,0 +1,84 @@
1
+ Veewee::Session.declare({
2
+ :cpu_count => '1', :memory_size=> '256',
3
+ :disk_size => '40960', :disk_format => 'VDI', :hostiocache => 'off',
4
+ :os_type_id => 'OpenBSD_64',
5
+ :iso_file => "install50.iso",
6
+ :iso_src => "http://ftp.plig.net/pub/OpenBSD/5.0/amd64/install50.iso",
7
+ :iso_md5 => "2b7d7ca2acc7f148bd92f065034f9f5a",
8
+ :iso_download_timeout => "1000",
9
+ :boot_wait => "40", :boot_cmd_sequence => [
10
+ # I - install
11
+ 'I<Enter>',
12
+ # set the keyboard
13
+ 'us<Enter>',
14
+ # set the hostname
15
+ 'OpenBSD50-x64<Enter>',
16
+ # Which nic to config ? [em0]
17
+ '<Enter>',
18
+ # do you want dhcp ? [dhcp]
19
+ '<Enter>',
20
+ '<Wait>'*5,
21
+ # IPV6 for em0 ? [none]
22
+ 'none<Enter>',
23
+ # Which other nic do you wish to configure [done]
24
+ 'done<Enter>',
25
+ # Manual netw configuration ? [no]
26
+ 'no<Enter>',
27
+ # Pw for root account
28
+ 'vagrant<Enter>',
29
+ 'vagrant<Enter>',
30
+ # Start sshd by default ? [yes]
31
+ 'yes<Enter>',
32
+ # Start ntpd by default ? [yes]
33
+ 'no<Enter>',
34
+ # Do you want the X window system [yes]
35
+ 'no<Enter>',
36
+ # Setup a user ?
37
+ 'vagrant<Enter>',
38
+ # Full username
39
+ 'vagrant<Enter>',
40
+ # Pw for this user
41
+ 'vagrant<Enter>',
42
+ 'vagrant<Enter>',
43
+ # Do you want to disable sshd for root ? [yes]
44
+ 'no<Enter>',
45
+ # What timezone are you in ?
46
+ 'GB<Enter>',
47
+ # Available disks [sd0]
48
+ '<Enter>',
49
+ # Use DUIDs rather than device names in fstab ? [yes]
50
+ '<Enter>',
51
+ # Use (W)whole disk or (E)edit MBR ? [whole]
52
+ 'W<Enter>',
53
+ # Use (A)auto layout ... ? [a]
54
+ 'A<Enter>',
55
+ '<Wait>'*60,
56
+ # location of the sets [cd]
57
+ 'cd<Enter>',
58
+ # Available cd-roms : cd0
59
+ '<Enter>',
60
+ # Pathneame to sets ? [5.0/amd64]
61
+ '<Enter>',
62
+ # Remove games and X
63
+ '-game50.tgz<Enter>',
64
+ '-xbase50.tgz<Enter>',
65
+ '-xetc50.tgz<Enter>',
66
+ '-xshare50.tgz<Enter>',
67
+ '-xfont50.tgz<Enter>',
68
+ '-xserv50.tgz<Enter>',
69
+ 'done<Enter>',
70
+ '<Wait>'*90,
71
+ # Done installing ?
72
+ 'done<Enter>',
73
+ '<Wait>'*6,
74
+ # Install non-free firmware files on first boot ? [no] <-- don't know what this is so I'm saying no
75
+ 'no<Enter><Wait>',
76
+ 'reboot<Enter>'
77
+ ],
78
+ :kickstart_port => "7122", :kickstart_timeout => "10000", :kickstart_file => "",
79
+ :ssh_login_timeout => "10000", :ssh_user => "root", :ssh_password => "vagrant", :ssh_key => "",
80
+ :ssh_host_port => "7222", :ssh_guest_port => "22",
81
+ :sudo_cmd => "sh '%f'",
82
+ :shutdown_cmd => "/sbin/halt -p",
83
+ :postinstall_files => [ "postinstall.sh"], :postinstall_timeout => "10000"
84
+ })
@@ -0,0 +1,81 @@
1
+ # set pkg path for users
2
+ echo " "
3
+ echo " Setting PKG_PATH for users "
4
+ echo " "
5
+ echo " export PKG_PATH=http://ftp.plig.net/pub/OpenBSD/`uname -r`/packages/`arch -s`/ " >> /root/.profile
6
+ echo " export PKG_PATH=http://ftp.plig.net/pub/OpenBSD/`uname -r`/packages/`arch -s`/ ">> /home/vagrant/.profile
7
+
8
+ # giving root & vagrant bash as shell
9
+ echo " "
10
+ echo " Giving root/vagrant bash as a shell "
11
+ echo " "
12
+ usermod -s /usr/local/bin/bash vagrant
13
+ usermod -s /usr/local/bin/bash root
14
+
15
+ # install wget/curl/bash/vim and its dependencies
16
+ echo " "
17
+ echo " Installing needed packages "
18
+ echo " "
19
+ export PKG_PATH=http://ftp.plig.net/pub/OpenBSD/`uname -r`/packages/`arch -s`/
20
+ pkg_add wget curl bash vim-7.3.154p1-no_x11 rsync bzip2 ngrep
21
+ pkg_add ruby-1.8.7.352p1
22
+ pkg_add ruby-gems
23
+ ln -sf /usr/local/bin/gem18 /usr/local/bin/gem
24
+
25
+ ln -sf /usr/local/bin/ruby18 /usr/local/bin/ruby
26
+ ln -sf /usr/local/bin/erb18 /usr/local/bin/erb
27
+ ln -sf /usr/local/bin/irb18 /usr/local/bin/irb
28
+ ln -sf /usr/local/bin/rdoc18 /usr/local/bin/rdoc
29
+ ln -sf /usr/local/bin/ri18 /usr/local/bin/ri
30
+ ln -sf /usr/local/bin/testrb18 /usr/local/bin/testrb
31
+
32
+ pkg_add ruby-iconv
33
+ pkg_add ruby-puppet-2.7.1
34
+
35
+ gem install chef --no-ri --no-rdoc
36
+
37
+
38
+ /etc/rc.d/sendmail stop
39
+
40
+ # Create puppet user/group
41
+ echo " "
42
+ echo " Creating puppet user / group "
43
+ echo " "
44
+ groupadd puppet
45
+ useradd -g puppet -d /var/lib/puppet -s /usr/bin/false puppet
46
+
47
+
48
+ # install the ports system for who wants to use it
49
+ echo " "
50
+ echo " Installing the ports system ! "
51
+ echo " "
52
+ cd /tmp
53
+ wget http://ftp.plig.net/pub/OpenBSD/5.0/ports.tar.gz
54
+ cd /usr
55
+ sudo tar xzf /tmp/ports.tar.gz
56
+
57
+ # sudo
58
+ # Defaults requiretty is not present in the sudoers file
59
+ # env_keep I'll leave it as it is since user's path is same or more comprehensive than root's path
60
+ echo " "
61
+ echo " Setting sudo to work with vagrant "
62
+ echo " "
63
+ echo "# Uncomment to allow people in group wheel to run all commands without a password" >> /etc/sudoers
64
+ echo "%wheel ALL=(ALL) NOPASSWD: SETENV: ALL" >> /etc/sudoers
65
+
66
+ # setup the vagrant key
67
+ # you can replace this key-pair with your own generated ssh key-pair
68
+ echo " "
69
+ echo " Setting the vagrant ssh pub key "
70
+ echo " "
71
+ mkdir /home/vagrant/.ssh
72
+ chmod 700 /home/vagrant/.ssh
73
+ chown vagrant.vagrant /home/vagrant/.ssh
74
+ touch /home/vagrant/.ssh/authorized_keys
75
+ curl -sL http://github.com/mitchellh/vagrant/raw/master/keys/vagrant.pub > /home/vagrant/.ssh/authorized_keys
76
+ chmod 600 /home/vagrant/.ssh/authorized_keys
77
+ chown vagrant.vagrant /home/vagrant/.ssh/authorized_keys
78
+
79
+ echo
80
+ echo "Post-install done"
81
+ exit 0
@@ -0,0 +1,28 @@
1
+ The boxes come with:
2
+ - ports system already installed
3
+ - puppet and chef
4
+ - check the postinstall.sh script to see what is built in the box on top of the default install
5
+ - add/remove to your heart's content
6
+
7
+ a. Easy to use boxes for experimentation
8
+ - with puppet
9
+ - with chef
10
+ - with whatever else you can dream of :)
11
+
12
+ b. Mount
13
+ # freebsd mouting NFS patch for FreeBSD
14
+ # https://github.com/mitchellh/vagrant/commit/8a0a1bddb5afc6b99cab595d6f3cc9a95bb1a509
15
+ # OpenBSD will need patching to use it as NFS host
16
+ From the validation steps just the mount step fails
17
+ Virtualbox mount can be achieved using NFS mounts, it is not possible using the VBox tools since you can't compile them on OpenBSD
18
+ 1. you can have your host expose NFS mounts that can be mounted by the Openbsd guest (checkout the vagrant documentation on using NFS mounts)
19
+ 2. another way can be to work with vagrant in Puppet-server / chef-server mode since it will get manifests over the network from the puppet/chef server.
20
+ 3. use a shell provisioner and scp/rsync your manifests from the host to the guest
21
+
22
+
23
+ c. Wait times
24
+ I've commented in all the steps in the OpenBSD install (definitions.rb)
25
+ Adjust the <Wait> times if your machine is slower/faster than those times.
26
+
27
+ d. More on puppet usage with OpenBSD
28
+ # http://puppetlabs.com/blog/guest-post-a-puffy-in-the-corporate-aquarium-the-sequel/
@@ -0,0 +1,84 @@
1
+ Veewee::Session.declare({
2
+ :cpu_count => '1', :memory_size=> '256',
3
+ :disk_size => '40960', :disk_format => 'VDI', :hostiocache => 'off',
4
+ :os_type_id => 'OpenBSD_64',
5
+ :iso_file => "install50.iso",
6
+ :iso_src => "http://ftp.plig.net/pub/OpenBSD/5.0/i386/install50.iso",
7
+ :iso_md5 => "2f0cc4df7dfe095f15a8ddadf8a02f69",
8
+ :iso_download_timeout => "1000",
9
+ :boot_wait => "40", :boot_cmd_sequence => [
10
+ # I - install
11
+ 'I<Enter>',
12
+ # set the keyboard
13
+ 'us<Enter>',
14
+ # set the hostname
15
+ 'OpenBSD50-x64<Enter>',
16
+ # Which nic to config ? [em0]
17
+ '<Enter>',
18
+ # do you want dhcp ? [dhcp]
19
+ '<Enter>',
20
+ '<Wait>'*5,
21
+ # IPV6 for em0 ? [none]
22
+ 'none<Enter>',
23
+ # Which other nic do you wish to configure [done]
24
+ 'done<Enter>',
25
+ # Manual netw configuration ? [no]
26
+ 'no<Enter>',
27
+ # Pw for root account
28
+ 'vagrant<Enter>',
29
+ 'vagrant<Enter>',
30
+ # Start sshd by default ? [yes]
31
+ 'yes<Enter>',
32
+ # Start ntpd by default ? [yes]
33
+ 'no<Enter>',
34
+ # Do you want the X window system [yes]
35
+ 'no<Enter>',
36
+ # Setup a user ?
37
+ 'vagrant<Enter>',
38
+ # Full username
39
+ 'vagrant<Enter>',
40
+ # Pw for this user
41
+ 'vagrant<Enter>',
42
+ 'vagrant<Enter>',
43
+ # Do you want to disable sshd for root ? [yes]
44
+ 'no<Enter>',
45
+ # What timezone are you in ?
46
+ 'GB<Enter>',
47
+ # Available disks [sd0]
48
+ '<Enter>',
49
+ # Use DUIDs rather than device names in fstab ? [yes]
50
+ '<Enter>',
51
+ # Use (W)whole disk or (E)edit MBR ? [whole]
52
+ 'W<Enter>',
53
+ # Use (A)auto layout ... ? [a]
54
+ 'A<Enter>',
55
+ '<Wait>'*60,
56
+ # location of the sets [cd]
57
+ 'cd<Enter>',
58
+ # Available cd-roms : cd0
59
+ '<Enter>',
60
+ # Pathneame to sets ? [5.0/amd64]
61
+ '<Enter>',
62
+ # Remove games and X
63
+ '-game50.tgz<Enter>',
64
+ '-xbase50.tgz<Enter>',
65
+ '-xetc50.tgz<Enter>',
66
+ '-xshare50.tgz<Enter>',
67
+ '-xfont50.tgz<Enter>',
68
+ '-xserv50.tgz<Enter>',
69
+ 'done<Enter>',
70
+ '<Wait>'*90,
71
+ # Done installing ?
72
+ 'done<Enter>',
73
+ '<Wait>'*6,
74
+ # Install non-free firmware files on first boot ? [no] <-- don't know what this is so I'm saying no
75
+ 'no<Enter><Wait>',
76
+ 'reboot<Enter>'
77
+ ],
78
+ :kickstart_port => "7122", :kickstart_timeout => "10000", :kickstart_file => "",
79
+ :ssh_login_timeout => "10000", :ssh_user => "root", :ssh_password => "vagrant", :ssh_key => "",
80
+ :ssh_host_port => "7222", :ssh_guest_port => "22",
81
+ :sudo_cmd => "sh '%f'",
82
+ :shutdown_cmd => "/sbin/halt -p",
83
+ :postinstall_files => [ "postinstall.sh"], :postinstall_timeout => "10000"
84
+ })
@@ -0,0 +1,80 @@
1
+ # set pkg path for users
2
+ echo " "
3
+ echo " Setting PKG_PATH for users "
4
+ echo " "
5
+ echo " export PKG_PATH=http://ftp.plig.net/pub/OpenBSD/`uname -r`/packages/`arch -s`/ " >> /root/.profile
6
+ echo " export PKG_PATH=http://ftp.plig.net/pub/OpenBSD/`uname -r`/packages/`arch -s`/ ">> /home/vagrant/.profile
7
+
8
+ # giving root & vagrant bash as shell
9
+ echo " "
10
+ echo " Giving root/vagrant bash as a shell "
11
+ echo " "
12
+ usermod -s /usr/local/bin/bash vagrant
13
+ usermod -s /usr/local/bin/bash root
14
+
15
+ # install wget/curl/bash/vim and its dependencies
16
+ echo " "
17
+ echo " Installing needed packages "
18
+ echo " "
19
+ export PKG_PATH=http://ftp.plig.net/pub/OpenBSD/`uname -r`/packages/`arch -s`/
20
+ pkg_add wget curl bash vim-7.3.154p1-no_x11 rsync bzip2 ngrep
21
+ pkg_add ruby-1.8.7.352p1
22
+ pkg_add ruby-gems
23
+ ln -sf /usr/local/bin/gem18 /usr/local/bin/gem
24
+
25
+ ln -sf /usr/local/bin/ruby18 /usr/local/bin/ruby
26
+ ln -sf /usr/local/bin/erb18 /usr/local/bin/erb
27
+ ln -sf /usr/local/bin/irb18 /usr/local/bin/irb
28
+ ln -sf /usr/local/bin/rdoc18 /usr/local/bin/rdoc
29
+ ln -sf /usr/local/bin/ri18 /usr/local/bin/ri
30
+ ln -sf /usr/local/bin/testrb18 /usr/local/bin/testrb
31
+
32
+ pkg_add ruby-iconv
33
+ pkg_add ruby-puppet-2.7.1
34
+
35
+ gem install chef --no-ri --no-rdoc
36
+
37
+ /etc/rc.d/sendmail stop
38
+
39
+ # Create puppet user/group
40
+ echo " "
41
+ echo " Creating puppet user / group "
42
+ echo " "
43
+ groupadd puppet
44
+ useradd -g puppet -d /var/lib/puppet -s /usr/bin/false puppet
45
+
46
+
47
+ # install the ports system for who wants to use it
48
+ echo " "
49
+ echo " Installing the ports system ! "
50
+ echo " "
51
+ cd /tmp
52
+ wget http://ftp.plig.net/pub/OpenBSD/5.0/ports.tar.gz
53
+ cd /usr
54
+ sudo tar xzf /tmp/ports.tar.gz
55
+
56
+ # sudo
57
+ # Defaults requiretty is not present in the sudoers file
58
+ # env_keep I'll leave it as it is since user's path is same or more comprehensive than root's path
59
+ echo " "
60
+ echo " Setting sudo to work with vagrant "
61
+ echo " "
62
+ echo "# Uncomment to allow people in group wheel to run all commands without a password" >> /etc/sudoers
63
+ echo "%wheel ALL=(ALL) NOPASSWD: SETENV: ALL" >> /etc/sudoers
64
+
65
+ # setup the vagrant key
66
+ # you can replace this key-pair with your own generated ssh key-pair
67
+ echo " "
68
+ echo " Setting the vagrant ssh pub key "
69
+ echo " "
70
+ mkdir /home/vagrant/.ssh
71
+ chmod 700 /home/vagrant/.ssh
72
+ chown vagrant.vagrant /home/vagrant/.ssh
73
+ touch /home/vagrant/.ssh/authorized_keys
74
+ curl -sL http://github.com/mitchellh/vagrant/raw/master/keys/vagrant.pub > /home/vagrant/.ssh/authorized_keys
75
+ chmod 600 /home/vagrant/.ssh/authorized_keys
76
+ chown vagrant.vagrant /home/vagrant/.ssh/authorized_keys
77
+
78
+ echo
79
+ echo "Post-install done"
80
+ exit 0