veewee 0.3.1 → 0.3.2

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 (108) hide show
  1. data/Gemfile +4 -0
  2. data/README.md +1 -1
  3. data/doc/definition.md +18 -0
  4. data/doc/kvm.md +28 -1
  5. data/doc/template.md +53 -2
  6. data/lib/veewee/command/fusion.rb +37 -3
  7. data/lib/veewee/command/vagrant/basebox.rb +2 -0
  8. data/lib/veewee/command/vagrant/winrm.rb +39 -0
  9. data/lib/veewee/command/vbox.rb +18 -0
  10. data/lib/veewee/definition.rb +13 -3
  11. data/lib/veewee/error.rb +3 -0
  12. data/lib/veewee/provider/core/box.rb +7 -0
  13. data/lib/veewee/provider/core/box/build.rb +34 -14
  14. data/lib/veewee/provider/core/box/copy.rb +17 -0
  15. data/lib/veewee/provider/core/box/exec.rb +31 -12
  16. data/lib/veewee/provider/core/box/floppy.rb +1 -0
  17. data/lib/veewee/provider/core/box/halt.rb +7 -3
  18. data/lib/veewee/provider/core/box/validate_tags.rb +8 -2
  19. data/lib/veewee/provider/core/box/wincp.rb +120 -0
  20. data/lib/veewee/provider/core/box/winrm.rb +59 -0
  21. data/lib/veewee/provider/core/helper/comm.rb +47 -0
  22. data/lib/veewee/provider/core/helper/web.rb +20 -9
  23. data/lib/veewee/provider/core/helper/winrm.rb +167 -0
  24. data/lib/veewee/provider/kvm/box/create.rb +59 -3
  25. data/lib/veewee/provider/kvm/provider.rb +6 -6
  26. data/lib/veewee/provider/parallels/box/helper/buildinfo.rb +1 -1
  27. data/lib/veewee/provider/virtualbox/box.rb +1 -0
  28. data/lib/veewee/provider/virtualbox/box/build.rb +4 -2
  29. data/lib/veewee/provider/virtualbox/box/create.rb +32 -12
  30. data/lib/veewee/provider/virtualbox/box/helper/buildinfo.rb +6 -3
  31. data/lib/veewee/provider/virtualbox/box/helper/create.rb +20 -5
  32. data/lib/veewee/provider/virtualbox/box/helper/winrm_options.rb +31 -0
  33. data/lib/veewee/provider/virtualbox/box/up.rb +33 -12
  34. data/lib/veewee/provider/virtualbox/box/winrm.rb +13 -0
  35. data/lib/veewee/provider/vmfusion/box.rb +2 -0
  36. data/lib/veewee/provider/vmfusion/box/add_share.rb +18 -0
  37. data/lib/veewee/provider/vmfusion/box/build.rb +3 -1
  38. data/lib/veewee/provider/vmfusion/box/create.rb +7 -2
  39. data/lib/veewee/provider/vmfusion/box/helper/buildinfo.rb +9 -6
  40. data/lib/veewee/provider/vmfusion/box/helper/ip.rb +1 -1
  41. data/lib/veewee/provider/vmfusion/box/helper/winrm_options.rb +21 -0
  42. data/lib/veewee/provider/vmfusion/box/template.rb +7 -3
  43. data/lib/veewee/provider/vmfusion/box/template.vmx.erb +6 -0
  44. data/lib/veewee/provider/vmfusion/box/winrm.rb +12 -0
  45. data/lib/veewee/provider/vmfusion/provider.rb +7 -1
  46. data/lib/veewee/version.rb +1 -1
  47. data/templates/CentOS-5.6-x86_64-netboot-packages/definition.rb +16 -0
  48. data/templates/CentOS-5.6-x86_64-netboot-packages/ks.cfg +47 -0
  49. data/templates/CentOS-5.6-x86_64-netboot-packages/postinstall.sh +61 -0
  50. data/templates/Debian-7.0-b3-amd64-netboot/base.sh +27 -0
  51. data/templates/Debian-7.0-b3-amd64-netboot/chef.sh +2 -0
  52. data/templates/Debian-7.0-b3-amd64-netboot/cleanup-virtualbox.sh +4 -0
  53. data/templates/Debian-7.0-b3-amd64-netboot/cleanup.sh +17 -0
  54. data/templates/Debian-7.0-b3-amd64-netboot/definition.rb +51 -0
  55. data/templates/Debian-7.0-b3-amd64-netboot/preseed.cfg +313 -0
  56. data/templates/Debian-7.0-b3-amd64-netboot/puppet.sh +2 -0
  57. data/templates/Debian-7.0-b3-amd64-netboot/ruby.sh +10 -0
  58. data/templates/Debian-7.0-b3-amd64-netboot/vagrant.sh +25 -0
  59. data/templates/Debian-7.0-b3-amd64-netboot/virtualbox.sh +13 -0
  60. data/templates/Debian-7.0-b3-amd64-netboot/zerodisk.sh +3 -0
  61. data/templates/Fedora-18-i386/definition.rb +17 -0
  62. data/templates/Fedora-18-i386/ks.cfg +75 -0
  63. data/templates/Fedora-18-i386/postinstall.sh +38 -0
  64. data/templates/Fedora-18-x86_64/definition.rb +17 -0
  65. data/templates/Fedora-18-x86_64/ks.cfg +75 -0
  66. data/templates/Fedora-18-x86_64/postinstall.sh +38 -0
  67. data/templates/OracleLinux-6.3-x86_64-DVD/base.sh +30 -0
  68. data/templates/OracleLinux-6.3-x86_64-DVD/chef.sh +3 -0
  69. data/templates/OracleLinux-6.3-x86_64-DVD/cleanup.sh +5 -0
  70. data/templates/OracleLinux-6.3-x86_64-DVD/definition.rb +40 -0
  71. data/templates/OracleLinux-6.3-x86_64-DVD/ks.cfg +42 -0
  72. data/templates/OracleLinux-6.3-x86_64-DVD/puppet.sh +12 -0
  73. data/templates/OracleLinux-6.3-x86_64-DVD/ruby.sh +3 -0
  74. data/templates/OracleLinux-6.3-x86_64-DVD/vagrant.sh +18 -0
  75. data/templates/OracleLinux-6.3-x86_64-DVD/virtualbox.sh +8 -0
  76. data/templates/OracleLinux-6.3-x86_64-DVD/zerodisk.sh +3 -0
  77. data/templates/funtoo-latest-x86_64/definition.rb +37 -0
  78. data/templates/funtoo-latest-x86_64/postinstall.sh +401 -0
  79. data/templates/openbsd50_amd64/definition.rb +3 -2
  80. data/templates/openbsd50_amd64/postinstall.sh +4 -4
  81. data/templates/openbsd50_i386/definition.rb +4 -4
  82. data/templates/openbsd52_amd64/README +28 -0
  83. data/templates/openbsd52_amd64/definition.rb +85 -0
  84. data/templates/openbsd52_amd64/postinstall.sh +81 -0
  85. data/templates/openbsd52_i386/README +28 -0
  86. data/templates/openbsd52_i386/definition.rb +85 -0
  87. data/templates/openbsd52_i386/postinstall.sh +81 -0
  88. data/templates/windows-2008R1-serverstandard-amd64/Autounattend.xml +6 -6
  89. data/templates/windows-2008R1-serverweb-amd64/install-winrm.bat +1 -1
  90. data/templates/windows-2008R2-serverstandard-amd64-winrm/Autounattend.xml +224 -0
  91. data/templates/windows-2008R2-serverstandard-amd64-winrm/README.md +87 -0
  92. data/templates/windows-2008R2-serverstandard-amd64-winrm/definition.rb +33 -0
  93. data/templates/windows-2008R2-serverstandard-amd64-winrm/install-chef.bat +2 -0
  94. data/templates/windows-2008R2-serverstandard-amd64-winrm/install-vbox.bat +4 -0
  95. data/templates/windows-2008R2-serverstandard-amd64-winrm/oracle-cert.cer +0 -0
  96. data/templates/windows-2008R2-serverstandard-amd64-winrm/postinstall.sh +74 -0
  97. data/templates/windows-7-enterprise-amd64-winrm/Autounattend.xml +227 -0
  98. data/templates/windows-7-enterprise-amd64-winrm/README.md +52 -0
  99. data/templates/windows-7-enterprise-amd64-winrm/definition.rb +27 -0
  100. data/templates/windows-7-enterprise-amd64-winrm/install-chef.bat +2 -0
  101. data/templates/windows-7-enterprise-amd64-winrm/install-fusion.bat +18 -0
  102. data/templates/windows-7-enterprise-amd64-winrm/install-puppet.bat +4 -0
  103. data/templates/windows-7-enterprise-amd64-winrm/install-vbox.bat +4 -0
  104. data/templates/windows-7-enterprise-amd64-winrm/oracle-cert.cer +0 -0
  105. data/templates/windows-7-enterprise-amd64-winrm/postinstall.bat +74 -0
  106. data/validation/veewee-windows.feature +34 -0
  107. data/veewee.gemspec +1 -1
  108. metadata +73 -7
@@ -2,8 +2,8 @@ Veewee::Session.declare({
2
2
  :cpu_count => '1', :memory_size=> '256',
3
3
  :disk_size => '40960', :disk_format => 'VDI', :hostiocache => 'off',
4
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",
5
+ :iso_file => "openbsd50_64.iso",
6
+ :iso_src => "http://ftp3.usa.openbsd.org/pub/OpenBSD/5.0/amd64/install50.iso",
7
7
  :iso_md5 => "2b7d7ca2acc7f148bd92f065034f9f5a",
8
8
  :iso_download_timeout => "1000",
9
9
  :boot_wait => "40", :boot_cmd_sequence => [
@@ -71,6 +71,7 @@ Veewee::Session.declare({
71
71
  # Done installing ?
72
72
  'done<Enter>',
73
73
  '<Wait>'*6,
74
+ '<Enter><Wait>',
74
75
  # Install non-free firmware files on first boot ? [no] <-- don't know what this is so I'm saying no
75
76
  'no<Enter><Wait>',
76
77
  'reboot<Enter>'
@@ -2,8 +2,8 @@
2
2
  echo " "
3
3
  echo " Setting PKG_PATH for users "
4
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
5
+ echo " export PKG_PATH=http://ftp3.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s`/ " >> /root/.profile
6
+ echo " export PKG_PATH=http://ftp3.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s`/ ">> /home/vagrant/.profile
7
7
 
8
8
  # giving root & vagrant bash as shell
9
9
  echo " "
@@ -16,7 +16,7 @@ usermod -s /usr/local/bin/bash root
16
16
  echo " "
17
17
  echo " Installing needed packages "
18
18
  echo " "
19
- export PKG_PATH=http://ftp.plig.net/pub/OpenBSD/`uname -r`/packages/`arch -s`/
19
+ export PKG_PATH=http://ftp3.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s`/
20
20
  pkg_add wget curl bash vim-7.3.154p1-no_x11 rsync bzip2 ngrep
21
21
  pkg_add ruby-1.8.7.352p1
22
22
  pkg_add ruby-gems
@@ -50,7 +50,7 @@ echo " "
50
50
  echo " Installing the ports system ! "
51
51
  echo " "
52
52
  cd /tmp
53
- wget http://ftp.plig.net/pub/OpenBSD/5.0/ports.tar.gz
53
+ wget http://ftp3.usa.openbsd.org/pub/OpenBSD/5.0/ports.tar.gz
54
54
  cd /usr
55
55
  sudo tar xzf /tmp/ports.tar.gz
56
56
 
@@ -1,8 +1,8 @@
1
1
  Veewee::Session.declare({
2
2
  :cpu_count => '1', :memory_size=> '256',
3
3
  :disk_size => '40960', :disk_format => 'VDI', :hostiocache => 'off',
4
- :os_type_id => 'OpenBSD_64',
5
- :iso_file => "install50.iso",
4
+ :os_type_id => 'OpenBSD_32',
5
+ :iso_file => "openbsd50_32.iso",
6
6
  :iso_src => "http://ftp.plig.net/pub/OpenBSD/5.0/i386/install50.iso",
7
7
  :iso_md5 => "2f0cc4df7dfe095f15a8ddadf8a02f69",
8
8
  :iso_download_timeout => "1000",
@@ -12,7 +12,7 @@ Veewee::Session.declare({
12
12
  # set the keyboard
13
13
  'us<Enter>',
14
14
  # set the hostname
15
- 'OpenBSD50-x64<Enter>',
15
+ 'OpenBSD50-x32<Enter>',
16
16
  # Which nic to config ? [em0]
17
17
  '<Enter>',
18
18
  # do you want dhcp ? [dhcp]
@@ -57,7 +57,7 @@ Veewee::Session.declare({
57
57
  'cd<Enter>',
58
58
  # Available cd-roms : cd0
59
59
  '<Enter>',
60
- # Pathneame to sets ? [5.0/amd64]
60
+ # Pathneame to sets ? [5.0/i386]
61
61
  '<Enter>',
62
62
  # Remove games and X
63
63
  '-game50.tgz<Enter>',
@@ -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,85 @@
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 => "openbsd52_64.iso",
6
+ :iso_src => "http://ftp3.usa.openbsd.org/pub/OpenBSD/5.2/amd64/install52.iso",
7
+ :iso_md5 => "a10f51d910052b477147e198c08089f8",
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
+ 'OpenBSD52-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
+ # Pw for root account
26
+ 'vagrant<Enter>',
27
+ 'vagrant<Enter>',
28
+ # Start sshd by default ? [yes]
29
+ 'yes<Enter>',
30
+ # Start ntpd by default ? [yes]
31
+ 'no<Enter>',
32
+ # Do you want the X window system [yes]
33
+ 'no<Enter>',
34
+ # Setup a user ?
35
+ 'vagrant<Enter>',
36
+ # Full username
37
+ 'vagrant<Enter>',
38
+ # Pw for this user
39
+ 'vagrant<Enter>',
40
+ 'vagrant<Enter>',
41
+ # Do you want to disable sshd for root ? [yes]
42
+ 'no<Enter>',
43
+ # What timezone are you in ?
44
+ 'GB<Enter>',
45
+ # Available disks [sd0]
46
+ '<Enter>',
47
+ # Use DUIDs rather than device names in fstab ? [yes]
48
+ '<Enter>',
49
+ # Use (W)whole disk or (E)edit MBR ? [whole]
50
+ 'W<Enter>',
51
+ # Use (A)auto layout ... ? [a]
52
+ 'A<Enter>',
53
+ '<Wait>'*60,
54
+ # location of the sets [cd]
55
+ 'cd<Enter>',
56
+ # Available cd-roms : cd0
57
+ '<Enter>',
58
+ # Pathneame to sets ? [5.2/amd64]
59
+ '<Enter>',
60
+ # Remove games and X
61
+ '-game52.tgz<Enter>',
62
+ '-xbase52.tgz<Enter>',
63
+ '-xetc52.tgz<Enter>',
64
+ '-xshare52.tgz<Enter>',
65
+ '-xfont52.tgz<Enter>',
66
+ '-xserv52.tgz<Enter>',
67
+ 'done<Enter>',
68
+ '<Wait>'*90,
69
+ # Done installing ?
70
+ 'done<Enter>',
71
+ # Time appears wrong. Set to ...? [yes]
72
+ 'yes<Enter><Wait>',
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
+ '<Wait>'*6
78
+ ],
79
+ :kickstart_port => "7122", :kickstart_timeout => "10000", :kickstart_file => "",
80
+ :ssh_login_timeout => "10000", :ssh_user => "root", :ssh_password => "vagrant", :ssh_key => "",
81
+ :ssh_host_port => "7222", :ssh_guest_port => "22",
82
+ :sudo_cmd => "sh '%f'",
83
+ :shutdown_cmd => "/sbin/halt -p",
84
+ :postinstall_files => [ "postinstall.sh"], :postinstall_timeout => "10000"
85
+ })
@@ -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://ftp3.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s`/ " >> /root/.profile
6
+ echo " export PKG_PATH=http://ftp3.usa.openbsd.org/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://ftp3.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s`/
20
+ pkg_add wget curl bash vim-7.3.154p2-no_x11 rsync-3.0.9 bzip2 ngrep
21
+ pkg_add ruby-1.9.3.194
22
+ pkg_add ruby-gems
23
+ ln -sf /usr/local/bin/gem19 /usr/local/bin/gem
24
+
25
+ ln -sf /usr/local/bin/ruby19 /usr/local/bin/ruby
26
+ ln -sf /usr/local/bin/erb19 /usr/local/bin/erb
27
+ ln -sf /usr/local/bin/irb19 /usr/local/bin/irb
28
+ ln -sf /usr/local/bin/rdoc19 /usr/local/bin/rdoc
29
+ ln -sf /usr/local/bin/ri19 /usr/local/bin/ri
30
+ ln -sf /usr/local/bin/testrb19 /usr/local/bin/testrb
31
+
32
+ pkg_add ruby-iconv
33
+ pkg_add ruby-puppet-2.7.14
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://ftp3.usa.openbsd.org/pub/OpenBSD/`uname -r`/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,85 @@
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_32',
5
+ :iso_file => "openbsd52_32.iso",
6
+ :iso_src => "http://ftp3.usa.openbsd.org/pub/OpenBSD/5.2/i386/install52.iso",
7
+ :iso_md5 => "a10f51d910052b477147e198c08089f8",
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
+ 'OpenBSD52-x32<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
+ # Pw for root account
26
+ 'vagrant<Enter>',
27
+ 'vagrant<Enter>',
28
+ # Start sshd by default ? [yes]
29
+ 'yes<Enter>',
30
+ # Start ntpd by default ? [yes]
31
+ 'no<Enter>',
32
+ # Do you want the X window system [yes]
33
+ 'no<Enter>',
34
+ # Setup a user ?
35
+ 'vagrant<Enter>',
36
+ # Full username
37
+ 'vagrant<Enter>',
38
+ # Pw for this user
39
+ 'vagrant<Enter>',
40
+ 'vagrant<Enter>',
41
+ # Do you want to disable sshd for root ? [yes]
42
+ 'no<Enter>',
43
+ # What timezone are you in ?
44
+ 'GB<Enter>',
45
+ # Available disks [sd0]
46
+ '<Enter>',
47
+ # Use DUIDs rather than device names in fstab ? [yes]
48
+ '<Enter>',
49
+ # Use (W)whole disk or (E)edit MBR ? [whole]
50
+ 'W<Enter>',
51
+ # Use (A)auto layout ... ? [a]
52
+ 'A<Enter>',
53
+ '<Wait>'*60,
54
+ # location of the sets [cd]
55
+ 'cd<Enter>',
56
+ # Available cd-roms : cd0
57
+ '<Enter>',
58
+ # Pathneame to sets ? [5.2/i386]
59
+ '<Enter>',
60
+ # Remove games and X
61
+ '-game52.tgz<Enter>',
62
+ '-xbase52.tgz<Enter>',
63
+ '-xetc52.tgz<Enter>',
64
+ '-xshare52.tgz<Enter>',
65
+ '-xfont52.tgz<Enter>',
66
+ '-xserv52.tgz<Enter>',
67
+ 'done<Enter>',
68
+ '<Wait>'*90,
69
+ # Done installing ?
70
+ 'done<Enter>',
71
+ # Time appears wrong. Set to ...? [yes]
72
+ 'yes<Enter><Wait>',
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
+ '<Wait>'*6
78
+ ],
79
+ :kickstart_port => "7122", :kickstart_timeout => "10000", :kickstart_file => "",
80
+ :ssh_login_timeout => "10000", :ssh_user => "root", :ssh_password => "vagrant", :ssh_key => "",
81
+ :ssh_host_port => "7222", :ssh_guest_port => "22",
82
+ :sudo_cmd => "sh '%f'",
83
+ :shutdown_cmd => "/sbin/halt -p",
84
+ :postinstall_files => [ "postinstall.sh"], :postinstall_timeout => "10000"
85
+ })
@@ -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://ftp3.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s`/ " >> /root/.profile
6
+ echo " export PKG_PATH=http://ftp3.usa.openbsd.org/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://ftp3.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s`/
20
+ pkg_add wget curl bash vim-7.3.154p2-no_x11 rsync-3.0.9 bzip2 ngrep
21
+ pkg_add ruby-1.9.3.194
22
+ pkg_add ruby-gems
23
+ ln -sf /usr/local/bin/gem19 /usr/local/bin/gem
24
+
25
+ ln -sf /usr/local/bin/ruby19 /usr/local/bin/ruby
26
+ ln -sf /usr/local/bin/erb19 /usr/local/bin/erb
27
+ ln -sf /usr/local/bin/irb19 /usr/local/bin/irb
28
+ ln -sf /usr/local/bin/rdoc19 /usr/local/bin/rdoc
29
+ ln -sf /usr/local/bin/ri19 /usr/local/bin/ri
30
+ ln -sf /usr/local/bin/testrb19 /usr/local/bin/testrb
31
+
32
+ pkg_add ruby-iconv
33
+ pkg_add ruby-puppet-2.7.14
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://ftp3.usa.openbsd.org/pub/OpenBSD/`uname -r`/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