veewee 0.3.0.beta1 → 0.3.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. data/README.md +7 -7
  2. data/Rakefile +29 -10
  3. data/bin/veewee +5 -0
  4. data/doc/vagrant.md +2 -2
  5. data/lib/veewee/command/fusion.rb +1 -0
  6. data/lib/veewee/command/kvm.rb +1 -0
  7. data/lib/veewee/command/parallels.rb +1 -0
  8. data/lib/veewee/command/vagrant/validate.rb +5 -3
  9. data/lib/veewee/command/vbox.rb +1 -0
  10. data/lib/veewee/config/ostypes.yml +36 -2
  11. data/lib/veewee/definition.rb +2 -2
  12. data/lib/veewee/environment.rb +3 -1
  13. data/lib/veewee/provider/core/box.rb +2 -0
  14. data/lib/veewee/provider/core/box/build.rb +2 -2
  15. data/lib/veewee/provider/core/box/scp.rb +1 -1
  16. data/lib/veewee/provider/core/box/validate_tags.rb +58 -0
  17. data/lib/veewee/provider/core/provider.rb +5 -0
  18. data/lib/veewee/provider/kvm/box/create.rb +2 -2
  19. data/lib/veewee/provider/kvm/box/helper/console_type.rb +3 -3
  20. data/lib/veewee/provider/kvm/box/helper/ip.rb +2 -2
  21. data/lib/veewee/provider/kvm/box/helper/status.rb +2 -2
  22. data/lib/veewee/provider/kvm/box/validate_kvm.rb +1 -33
  23. data/lib/veewee/provider/kvm/provider.rb +1 -1
  24. data/lib/veewee/provider/parallels/box/validate_parallels.rb +1 -35
  25. data/lib/veewee/provider/virtualbox/box/helper/create.rb +3 -3
  26. data/lib/veewee/provider/virtualbox/box/validate_vagrant.rb +2 -42
  27. data/lib/veewee/provider/vmfusion/box/helper/buildinfo.rb +7 -3
  28. data/lib/veewee/provider/vmfusion/box/template.rb +9 -0
  29. data/lib/veewee/provider/vmfusion/box/template.vmx.erb +1 -1
  30. data/lib/veewee/provider/vmfusion/box/validate_vmfusion.rb +1 -35
  31. data/lib/veewee/provider/vmfusion/provider.rb +14 -10
  32. data/lib/veewee/version.rb +1 -1
  33. data/templates/CentOS-6.0-i386-netboot/base.sh +14 -0
  34. data/templates/CentOS-6.0-i386-netboot/chef.sh +3 -0
  35. data/templates/CentOS-6.0-i386-netboot/cleanup.sh +5 -0
  36. data/templates/CentOS-6.0-i386-netboot/definition.rb +33 -9
  37. data/templates/CentOS-6.0-i386-netboot/ks.cfg +19 -30
  38. data/templates/CentOS-6.0-i386-netboot/puppet.sh +12 -0
  39. data/templates/CentOS-6.0-i386-netboot/ruby.sh +3 -0
  40. data/templates/CentOS-6.0-i386-netboot/vagrant.sh +18 -0
  41. data/templates/CentOS-6.0-i386-netboot/virtualbox.sh +8 -0
  42. data/templates/CentOS-6.0-i386-netboot/zerodisk.sh +3 -0
  43. data/templates/CentOS-6.0-i386/base.sh +22 -0
  44. data/templates/CentOS-6.0-i386/chef.sh +3 -0
  45. data/templates/CentOS-6.0-i386/cleanup.sh +5 -0
  46. data/templates/CentOS-6.0-i386/definition.rb +33 -12
  47. data/templates/CentOS-6.0-i386/ks.cfg +12 -18
  48. data/templates/CentOS-6.0-i386/puppet.sh +12 -0
  49. data/templates/CentOS-6.0-i386/ruby.sh +3 -0
  50. data/templates/CentOS-6.0-i386/vagrant.sh +18 -0
  51. data/templates/CentOS-6.0-i386/virtualbox.sh +8 -0
  52. data/templates/CentOS-6.0-i386/zerodisk.sh +3 -0
  53. data/templates/CentOS-6.0-x86_64-minimal/base.sh +22 -0
  54. data/templates/CentOS-6.0-x86_64-minimal/chef.sh +3 -0
  55. data/templates/CentOS-6.0-x86_64-minimal/cleanup.sh +5 -0
  56. data/templates/CentOS-6.0-x86_64-minimal/definition.rb +33 -10
  57. data/templates/CentOS-6.0-x86_64-minimal/ks.cfg +11 -7
  58. data/templates/CentOS-6.0-x86_64-minimal/puppet.sh +12 -0
  59. data/templates/CentOS-6.0-x86_64-minimal/ruby.sh +3 -0
  60. data/templates/CentOS-6.0-x86_64-minimal/vagrant.sh +18 -0
  61. data/templates/CentOS-6.0-x86_64-minimal/virtualbox.sh +8 -0
  62. data/templates/CentOS-6.0-x86_64-minimal/zerodisk.sh +3 -0
  63. data/templates/CentOS-6.0-x86_64-netboot/base.sh +14 -0
  64. data/templates/CentOS-6.0-x86_64-netboot/chef.sh +3 -0
  65. data/templates/CentOS-6.0-x86_64-netboot/cleanup.sh +5 -0
  66. data/templates/CentOS-6.0-x86_64-netboot/definition.rb +32 -8
  67. data/templates/CentOS-6.0-x86_64-netboot/ks.cfg +18 -30
  68. data/templates/CentOS-6.0-x86_64-netboot/puppet.sh +12 -0
  69. data/templates/CentOS-6.0-x86_64-netboot/ruby.sh +3 -0
  70. data/templates/CentOS-6.0-x86_64-netboot/vagrant.sh +18 -0
  71. data/templates/CentOS-6.0-x86_64-netboot/virtualbox.sh +8 -0
  72. data/templates/CentOS-6.0-x86_64-netboot/zerodisk.sh +3 -0
  73. data/templates/CentOS-6.0-x86_64/base.sh +10 -0
  74. data/templates/CentOS-6.0-x86_64/chef.sh +1 -0
  75. data/templates/CentOS-6.0-x86_64/cleanup.sh +1 -0
  76. data/templates/CentOS-6.0-x86_64/definition.rb +16 -7
  77. data/templates/CentOS-6.0-x86_64/ks.cfg +12 -18
  78. data/templates/CentOS-6.0-x86_64/puppet.sh +1 -0
  79. data/templates/CentOS-6.0-x86_64/ruby.sh +2 -1
  80. data/templates/CentOS-6.0-x86_64/vagrant.sh +13 -4
  81. data/templates/CentOS-6.0-x86_64/virtualbox.sh +4 -4
  82. data/templates/CentOS-6.0-x86_64/zerodisk.sh +3 -0
  83. data/templates/CentOS-6.1-x86_64-minimal/base.sh +10 -1
  84. data/templates/CentOS-6.1-x86_64-minimal/chef.sh +1 -0
  85. data/templates/CentOS-6.1-x86_64-minimal/cleanup.sh +1 -0
  86. data/templates/CentOS-6.1-x86_64-minimal/definition.rb +3 -2
  87. data/templates/CentOS-6.1-x86_64-minimal/ks.cfg +13 -18
  88. data/templates/CentOS-6.1-x86_64-minimal/puppet.sh +1 -0
  89. data/templates/CentOS-6.1-x86_64-minimal/ruby.sh +2 -1
  90. data/templates/CentOS-6.1-x86_64-minimal/vagrant.sh +6 -4
  91. data/templates/CentOS-6.1-x86_64-minimal/virtualbox.sh +2 -2
  92. data/templates/CentOS-6.1-x86_64-minimal/zerodisk.sh +3 -0
  93. data/templates/CentOS-6.1-x86_64-netboot/base.sh +2 -1
  94. data/templates/CentOS-6.1-x86_64-netboot/chef.sh +1 -0
  95. data/templates/CentOS-6.1-x86_64-netboot/cleanup.sh +1 -0
  96. data/templates/CentOS-6.1-x86_64-netboot/definition.rb +7 -6
  97. data/templates/CentOS-6.1-x86_64-netboot/ks.cfg +13 -17
  98. data/templates/CentOS-6.1-x86_64-netboot/puppet.sh +1 -0
  99. data/templates/CentOS-6.1-x86_64-netboot/ruby.sh +2 -1
  100. data/templates/CentOS-6.1-x86_64-netboot/vagrant.sh +6 -4
  101. data/templates/CentOS-6.1-x86_64-netboot/virtualbox.sh +3 -3
  102. data/templates/CentOS-6.1-x86_64-netboot/zerodisk.sh +3 -0
  103. data/templates/CentOS-6.2-i386-minimal/base.sh +8 -0
  104. data/templates/CentOS-6.2-i386-minimal/definition.rb +3 -2
  105. data/templates/CentOS-6.2-i386-minimal/ks.cfg +4 -1
  106. data/templates/CentOS-6.2-i386-minimal/vagrant.sh +5 -4
  107. data/templates/CentOS-6.2-i386-minimal/zerodisk.sh +3 -0
  108. data/templates/CentOS-6.2-x86_64-minimal/base.sh +8 -0
  109. data/templates/CentOS-6.2-x86_64-minimal/definition.rb +3 -2
  110. data/templates/CentOS-6.2-x86_64-minimal/ks.cfg +4 -1
  111. data/templates/CentOS-6.2-x86_64-minimal/vagrant.sh +5 -4
  112. data/templates/CentOS-6.2-x86_64-minimal/zerodisk.sh +3 -0
  113. data/templates/CentOS-6.2-x86_64-netboot/base.sh +2 -1
  114. data/templates/CentOS-6.2-x86_64-netboot/chef.sh +1 -0
  115. data/templates/CentOS-6.2-x86_64-netboot/cleanup.sh +1 -0
  116. data/templates/CentOS-6.2-x86_64-netboot/definition.rb +7 -6
  117. data/templates/CentOS-6.2-x86_64-netboot/ks.cfg +13 -17
  118. data/templates/CentOS-6.2-x86_64-netboot/puppet.sh +1 -0
  119. data/templates/CentOS-6.2-x86_64-netboot/ruby.sh +2 -1
  120. data/templates/CentOS-6.2-x86_64-netboot/vagrant.sh +6 -4
  121. data/templates/CentOS-6.2-x86_64-netboot/virtualbox.sh +3 -3
  122. data/templates/CentOS-6.2-x86_64-netboot/zerodisk.sh +3 -0
  123. data/templates/CentOS-6.3-i386-minimal/definition.rb +2 -1
  124. data/templates/CentOS-6.3-i386-minimal/vagrant.sh +5 -4
  125. data/templates/CentOS-6.3-i386-minimal/zerodisk.sh +3 -0
  126. data/templates/CentOS-6.3-x86_64-minimal/definition.rb +2 -1
  127. data/templates/CentOS-6.3-x86_64-minimal/vagrant.sh +5 -4
  128. data/templates/CentOS-6.3-x86_64-minimal/zerodisk.sh +3 -0
  129. data/templates/Debian-5.0.10-amd64-netboot/base.sh +9 -0
  130. data/templates/Debian-5.0.10-amd64-netboot/chef.sh +2 -0
  131. data/templates/Debian-5.0.10-amd64-netboot/cleanup.sh +10 -0
  132. data/templates/Debian-5.0.10-amd64-netboot/definition.rb +39 -0
  133. data/templates/Debian-5.0.10-amd64-netboot/postinstall.sh +60 -0
  134. data/templates/Debian-5.0.10-amd64-netboot/preseed.cfg +312 -0
  135. data/templates/Debian-5.0.10-amd64-netboot/puppet.sh +2 -0
  136. data/templates/Debian-5.0.10-amd64-netboot/ruby.sh +11 -0
  137. data/templates/Debian-5.0.10-amd64-netboot/vagrant.sh +14 -0
  138. data/templates/Debian-5.0.10-amd64-netboot/virtualbox.sh +15 -0
  139. data/templates/Debian-5.0.10-i386-netboot/base.sh +9 -0
  140. data/templates/Debian-5.0.10-i386-netboot/chef.sh +2 -0
  141. data/templates/Debian-5.0.10-i386-netboot/cleanup.sh +10 -0
  142. data/templates/Debian-5.0.10-i386-netboot/definition.rb +39 -0
  143. data/templates/Debian-5.0.10-i386-netboot/postinstall.sh +60 -0
  144. data/templates/Debian-5.0.10-i386-netboot/preseed.cfg +312 -0
  145. data/templates/Debian-5.0.10-i386-netboot/puppet.sh +2 -0
  146. data/templates/Debian-5.0.10-i386-netboot/ruby.sh +11 -0
  147. data/templates/Debian-5.0.10-i386-netboot/vagrant.sh +14 -0
  148. data/templates/Debian-5.0.10-i386-netboot/virtualbox.sh +15 -0
  149. data/templates/Debian-5.0.8-amd64-netboot/preseed.cfg +2 -2
  150. data/templates/Debian-5.0.8-i386-netboot/preseed.cfg +2 -2
  151. data/templates/Debian-6.0.4-amd64-netboot/definition.rb +1 -1
  152. data/templates/Debian-6.0.4-amd64-netboot/vagrant.sh +5 -1
  153. data/templates/Debian-6.0.4-i386-netboot/definition.rb +1 -1
  154. data/templates/Debian-6.0.4-i386-netboot/vagrant.sh +5 -1
  155. data/templates/Debian-6.0.5-amd64-netboot/vagrant.sh +5 -1
  156. data/templates/Debian-6.0.5-i386-netboot/vagrant.sh +5 -1
  157. data/templates/SLES-11-SP1-DVD-i586-GM/postinstall.sh +3 -0
  158. data/templates/SLES-11-SP1-DVD-x86_64-GM/postinstall.sh +3 -0
  159. data/templates/gentoo-latest-i386-experimental/definition.rb +20 -4
  160. data/templates/gentoo-latest-x86_64-experimental/definition.rb +23 -12
  161. data/templates/scientificlinux-6.1-i386-netboot/definition.rb +1 -2
  162. data/templates/scientificlinux-6.3-i386-netboot/base.sh +1 -0
  163. data/templates/scientificlinux-6.3-i386-netboot/chef.sh +1 -0
  164. data/templates/scientificlinux-6.3-i386-netboot/cleanup.sh +4 -0
  165. data/templates/scientificlinux-6.3-i386-netboot/definition.rb +37 -0
  166. data/templates/scientificlinux-6.3-i386-netboot/ks.cfg +53 -0
  167. data/templates/{CentOS-6.0-i386-netboot → scientificlinux-6.3-i386-netboot}/postinstall.sh +2 -2
  168. data/templates/scientificlinux-6.3-i386-netboot/puppet.sh +1 -0
  169. data/templates/scientificlinux-6.3-i386-netboot/ruby.sh +1 -0
  170. data/templates/scientificlinux-6.3-i386-netboot/vagrant.sh +8 -0
  171. data/templates/scientificlinux-6.3-i386-netboot/virtualbox.sh +8 -0
  172. data/templates/scientificlinux-6.3-x86_64-netboot/base.sh +1 -0
  173. data/templates/scientificlinux-6.3-x86_64-netboot/chef.sh +1 -0
  174. data/templates/scientificlinux-6.3-x86_64-netboot/cleanup.sh +4 -0
  175. data/templates/scientificlinux-6.3-x86_64-netboot/definition.rb +37 -0
  176. data/templates/scientificlinux-6.3-x86_64-netboot/ks.cfg +53 -0
  177. data/templates/{CentOS-6.0-x86_64-netboot → scientificlinux-6.3-x86_64-netboot}/postinstall.sh +2 -2
  178. data/templates/scientificlinux-6.3-x86_64-netboot/puppet.sh +1 -0
  179. data/templates/scientificlinux-6.3-x86_64-netboot/ruby.sh +1 -0
  180. data/templates/scientificlinux-6.3-x86_64-netboot/rvm-ruby.sh +9 -0
  181. data/templates/scientificlinux-6.3-x86_64-netboot/vagrant.sh +8 -0
  182. data/templates/scientificlinux-6.3-x86_64-netboot/virtualbox.sh +8 -0
  183. data/templates/ubuntu-10.04.3-server-i386/postinstall.sh +5 -5
  184. data/templates/{ubuntu-12.04-server-amd64-packages → ubuntu-12.04.1-server-amd64-packages}/definition.rb +3 -3
  185. data/templates/{ubuntu-12.04-server-amd64-packages → ubuntu-12.04.1-server-amd64-packages}/postinstall.sh +0 -0
  186. data/templates/{ubuntu-12.04-server-amd64-packages → ubuntu-12.04.1-server-amd64-packages}/preseed.cfg +0 -0
  187. data/templates/{ubuntu-12.04-server-amd64 → ubuntu-12.04.1-server-amd64}/definition.rb +3 -3
  188. data/templates/{ubuntu-12.04-server-amd64 → ubuntu-12.04.1-server-amd64}/postinstall.sh +0 -0
  189. data/templates/{ubuntu-12.04-server-amd64 → ubuntu-12.04.1-server-amd64}/preseed.cfg +0 -0
  190. data/templates/{ubuntu-12.04-server-i386-packages → ubuntu-12.04.1-server-i386-packages}/definition.rb +3 -3
  191. data/templates/{ubuntu-12.04-server-i386-packages → ubuntu-12.04.1-server-i386-packages}/postinstall.sh +0 -0
  192. data/templates/{ubuntu-12.04-server-i386-packages → ubuntu-12.04.1-server-i386-packages}/preseed.cfg +0 -0
  193. data/templates/{ubuntu-12.04-server-i386 → ubuntu-12.04.1-server-i386}/definition.rb +3 -3
  194. data/templates/{ubuntu-12.04-server-i386 → ubuntu-12.04.1-server-i386}/postinstall.sh +0 -0
  195. data/templates/{ubuntu-12.04-server-i386 → ubuntu-12.04.1-server-i386}/preseed.cfg +0 -0
  196. data/templates/{windows-8-preview-dev-amd64 → windows-8-preview-amd64}/Autounattend.xml +0 -0
  197. data/templates/{windows-8-preview-dev-amd64 → windows-8-preview-amd64}/README.md +0 -0
  198. data/templates/{windows-8-preview-dev-amd64 → windows-8-preview-amd64}/cygwin-setup.exe +0 -0
  199. data/templates/{windows-8-preview-dev-amd64 → windows-8-preview-amd64}/definition.rb +3 -3
  200. data/templates/{windows-8-preview-dev-amd64 → windows-8-preview-amd64}/install-cygwin-sshd.bat +0 -0
  201. data/templates/{windows-8-preview-dev-amd64 → windows-8-preview-amd64}/install-winrm.bat +0 -0
  202. data/templates/{windows-8-preview-dev-amd64 → windows-8-preview-amd64}/oracle-cert.cer +0 -0
  203. data/templates/{windows-8-preview-dev-amd64 → windows-8-preview-amd64}/postinstall.sh +0 -0
  204. data/templates/{windows-8-preview-dev-amd64 → windows-8-preview-amd64}/winrm.rb +0 -0
  205. data/validation/veewee.feature +6 -6
  206. metadata +306 -157
  207. data/templates/CentOS-6.0-i386/postinstall.sh +0 -48
  208. data/templates/CentOS-6.0-x86_64-minimal/postinstall.sh +0 -58
  209. data/templates/CentOS-6.0-x86_64/postinstall.sh +0 -48
  210. data/templates/CentOS-6.1-x86_64-netboot/postinstall.sh +0 -48
  211. data/templates/CentOS-6.2-x86_64-netboot/postinstall.sh +0 -48
@@ -42,7 +42,7 @@ module Veewee
42
42
  # http://www.libvirt.org/html/libvirt-libvirt.html#virGetVersion
43
43
  # format major * 1,000,000 + minor * 1,000 + release
44
44
  env.logger.info "Checking libvirt version"
45
- libvirt_version=conn.libversion
45
+ libvirt_version=conn.version
46
46
  if libvirt_version < 8003
47
47
  raise Veewee::Error,"You need at least libvirt version 0.8.3 or higher "
48
48
  end
@@ -4,41 +4,7 @@ module Veewee
4
4
  module BoxCommand
5
5
 
6
6
  def validate_parallels(options)
7
- require 'cucumber'
8
-
9
- require 'cucumber/rspec/disable_option_parser'
10
- require 'cucumber/cli/main'
11
-
12
- # Passing ssh options via ENV varialbles to cucumber
13
- # VEEWEE_SSH_USER, VEEWEE_SSH_PASSWORD ,VEEWEE_SSH_PORT
14
- cucumber_vars=ssh_options
15
- cucumber_vars.each do |key,value|
16
- ENV['VEEWEE_'+key.to_s.upcase]=cucumber_vars[key].to_s
17
- end
18
-
19
- # Pass the name of the box
20
- ENV['VEEWEE_BOXNAME']=@name
21
- ENV['VEEWEE_PROVIDER']="parallels"
22
-
23
- feature_path=File.join(File.dirname(__FILE__),"..","..","..","..","..","validation","veewee.feature")
24
-
25
- features=Array.new
26
- features[0]=feature_path
27
- features[1]="--tags"
28
- features[2]="@parallels"
29
-
30
- begin
31
- # The dup is to keep ARGV intact, so that tools like ruby-debug can respawn.
32
- failure = Cucumber::Cli::Main.execute(features.dup)
33
- Kernel.exit(failure ? 1 : 0)
34
- rescue SystemExit => e
35
- Kernel.exit(e.status)
36
- rescue Exception => e
37
- ui.error("#{e.message} (#{e.class})")
38
- ui.error(e.backtrace.join("\n"))
39
- Kernel.exit(1)
40
- end
41
-
7
+ validate_tags([ 'parallels','puppet','chef'],options)
42
8
  end
43
9
  end #Module
44
10
 
@@ -66,11 +66,11 @@ module Veewee
66
66
 
67
67
 
68
68
  def create_disk
69
- ui.info "Creating new harddrive of size #{definition.disk_size.to_i} "
69
+ ui.info "Creating new harddrive of size #{definition.disk_size.to_i}, format #{definition.disk_format}, variant #{definition.disk_variant} "
70
70
 
71
71
 
72
72
  place=get_vbox_home
73
- command ="#{@vboxcmd} createhd --filename \"#{File.join(place,name,name+"."+definition.disk_format.downcase)}\" --size \"#{definition.disk_size.to_i}\" --format #{definition.disk_format.downcase}"
73
+ command ="#{@vboxcmd} createhd --filename \"#{File.join(place,name,name+"."+definition.disk_format.downcase)}\" --size \"#{definition.disk_size.to_i}\" --format #{definition.disk_format.downcase} --variant #{definition.disk_variant.downcase}"
74
74
  shell_exec("#{command}")
75
75
 
76
76
  end
@@ -158,7 +158,7 @@ module Veewee
158
158
  if definition.instance_variable_defined?("@#{vm_flag}")
159
159
  vm_flag_value=definition.instance_variable_get("@#{vm_flag}")
160
160
  ui.info "Setting VM Flag #{vm_flag} to #{vm_flag_value}"
161
- ui.warn "Used of #{vm_flag} is deprecated - specify your options in :virtualbox => { : vm_options => [\"#{vm_flag}\" => \"#{vm_flag_value}\"]}"
161
+ ui.warn "Used of #{vm_flag} is deprecated - specify your options in the definition file as \n :virtualbox => { :vm_options => [\"#{vm_flag}\" => \"#{vm_flag_value}\"]}"
162
162
  command="#{@vboxcmd} modifyvm #{name} --#{vm_flag.to_s} #{vm_flag_value}"
163
163
  shell_exec("#{command}")
164
164
  end
@@ -3,48 +3,8 @@ module Veewee
3
3
  module Virtualbox
4
4
  module BoxCommand
5
5
 
6
- def validate_vagrant(options)
7
-
8
- unless self.running?
9
- ui.error "Error:: You tried to validate box '#{name}' but it is not running"
10
- exit -1
11
- end
12
-
13
- require 'cucumber'
14
-
15
- require 'cucumber/rspec/disable_option_parser'
16
- require 'cucumber/cli/main'
17
-
18
- # Passing ssh options via ENV varialbles to cucumber
19
- # VEEWEE_SSH_USER, VEEWEE_SSH_PASSWORD ,VEEWEE_SSH_PORT
20
- cucumber_vars=self.ssh_options
21
- cucumber_vars.each do |key,value|
22
- ENV['VEEWEE_'+key.to_s.upcase]=cucumber_vars[key].to_s
23
- end
24
-
25
- # Pass the name of the box
26
- ENV['VEEWEE_BOXNAME']=@name
27
- ENV['VEEWEE_PROVIDER']="virtualbox"
28
-
29
- feature_path=File.join(File.dirname(__FILE__),"..","..","..","..","..","validation","veewee.feature")
30
-
31
- features=Array.new
32
- features[0]=feature_path
33
- features[1]="--tags"
34
- features[2]="@vagrant,@virtualbox"
35
-
36
- begin
37
- # The dup is to keep ARGV intact, so that tools like ruby-debug can respawn.
38
- failure = Cucumber::Cli::Main.execute(features.dup)
39
- Kernel.exit(failure ? 1 : 0)
40
- rescue SystemExit => e
41
- Kernel.exit(e.status)
42
- rescue Exception => e
43
- ui.error("#{e.message} (#{e.class})")
44
- ui.error(e.backtrace.join("\n"))
45
- Kernel.exit(1)
46
- end
47
-
6
+ def validate_vagrant(options = {})
7
+ validate_tags( options['tags'],options)
48
8
  end
49
9
  end #Module
50
10
 
@@ -6,7 +6,7 @@ module Veewee
6
6
  def build_info
7
7
  info=super
8
8
  output=IO.popen("#{vmrun_cmd.shellescape}").readlines
9
- info << {:filename => ".vmfusion_version",:content => output[1].split(/ /)[2..3].join.strip}
9
+ info << {:filename => ".vmfusion_version",:content => @provider.fusion_version }
10
10
  end
11
11
 
12
12
 
@@ -14,7 +14,7 @@ module Veewee
14
14
  # use vmware fusion 3.x as default path
15
15
  iso_images_dir="/Library/Application Support/VMware Fusion/isoimages"
16
16
 
17
- # if path doesn't exist check for vmware fusion 4.x path
17
+ # if path doesn't exist check for vmware fusion >= 4.x path
18
18
  if( ! File.exists?(iso_images_dir) )
19
19
  iso_images_dir="/Applications/VMware Fusion.app/Contents/Library/isoimages"
20
20
  end
@@ -42,7 +42,11 @@ module Veewee
42
42
 
43
43
  env.logger.info "About to transfer vmware tools iso buildinfo to the box #{name} - #{ip_address} - #{ssh_options}"
44
44
  iso_image=guest_iso_path
45
- self.scp(iso_image,File.basename(iso_image))
45
+ if File.exists?(iso_image)
46
+ self.scp(iso_image,File.basename(iso_image))
47
+ else
48
+ raise Veewee::Error, "We could not find the file #{iso_image}. In newer versions of Fusion, you might have to download the Guest Additions yourself. You can do this by first manually creating a vm and than 'installing the guest additions'"
49
+ end
46
50
  end
47
51
 
48
52
  end
@@ -18,10 +18,19 @@ module Veewee
18
18
  floppy_path=File.join(definition.path,'virtualfloppy.img')
19
19
  end
20
20
 
21
+ # Depending on the fusion version, we need to update the virtualhw version
22
+ if @provider.fusion_version.start_with?('5.')
23
+ virtualhw_version = 9
24
+ else
25
+ virtualhw_version = 7
26
+ end
27
+
28
+ # Setup the variables for in the erb template
21
29
  data = {
22
30
  :cpu_count => definition.cpu_count, :memory_size => definition.memory_size,
23
31
  :controller_type => "lsilogic",
24
32
  :fusion_os_type => definition.os_type_id,
33
+ :virtualhw_version => virtualhw_version,
25
34
  :floppyfile => floppy_path,
26
35
  :mac_addres => "auto generated",
27
36
  :iso_file => "#{File.join(env.config.veewee.iso_dir,definition.iso_file)}",
@@ -1,6 +1,6 @@
1
1
  .encoding = "UTF-8"
2
2
  config.version = "8"
3
- virtualHW.version = "7"
3
+ virtualHW.version = <%= virtualhw_version %>
4
4
  numvcpus = "<%= cpu_count %>"
5
5
  scsi0.present = "TRUE"
6
6
  scsi0.virtualDev = "<%= controller_type %>"
@@ -4,41 +4,7 @@ module Veewee
4
4
  module BoxCommand
5
5
 
6
6
  def validate_vmfusion(options)
7
- require 'cucumber'
8
-
9
- require 'cucumber/rspec/disable_option_parser'
10
- require 'cucumber/cli/main'
11
-
12
- # Passing ssh options via ENV varialbles to cucumber
13
- # VEEWEE_SSH_USER, VEEWEE_SSH_PASSWORD ,VEEWEE_SSH_PORT
14
- cucumber_vars=ssh_options
15
- cucumber_vars.each do |key,value|
16
- ENV['VEEWEE_'+key.to_s.upcase]=cucumber_vars[key].to_s
17
- end
18
-
19
- # Pass the name of the box
20
- ENV['VEEWEE_BOXNAME']=@name
21
- ENV['VEEWEE_PROVIDER']="vmfusion"
22
-
23
- feature_path=File.join(File.dirname(__FILE__),"..","..","..","..","..","validation","veewee.feature")
24
-
25
- features=Array.new
26
- features[0]=feature_path
27
- features[1]="--tags"
28
- features[2]="@vmfusion"
29
-
30
- begin
31
- # The dup is to keep ARGV intact, so that tools like ruby-debug can respawn.
32
- failure = Cucumber::Cli::Main.execute(features.dup)
33
- Kernel.exit(failure ? 1 : 0)
34
- rescue SystemExit => e
35
- Kernel.exit(e.status)
36
- rescue Exception => e
37
- env.ui.error("#{e.message} (#{e.class})")
38
- env.ui.error(e.backtrace.join("\n"))
39
- Kernel.exit(1)
40
- end
41
-
7
+ validate_tags( options['tags'],options)
42
8
  end
43
9
  end #Module
44
10
 
@@ -8,24 +8,28 @@ module Veewee
8
8
  #include ::Veewee::Provider::Vmfusion::ProviderCommand
9
9
 
10
10
  def check_requirements
11
- fusion_version = :unknown
12
-
13
11
  require 'fission'
12
+
14
13
  if File.exists?("/Library/Application Support/VMware Fusion/vmrun")
15
- fusion_version = "3.x"
16
14
  ::Fission.config.attributes["vmrun_bin"] = "/Library/Application Support/VMware Fusion/vmrun"
17
- end
18
-
19
- if File.exists?("/Applications/VMware Fusion.app/Contents/Library/vmrun")
20
- fusion_version = "4.x"
15
+ elsif File.exists?("/Applications/VMware Fusion.app/Contents/Library/vmrun")
21
16
  ::Fission.config.attributes["vmrun_bin"] = "/Applications/VMware Fusion.app/Contents/Library/vmrun"
22
- end
23
-
24
- if fusion_version == :unknown
17
+ elsif
25
18
  raise Veewee::Error,"Could not find vmrun at standard locations. Probably you don't have Vmware fusion installed"
26
19
  end
20
+ env.logger.info("Found fusion version: #{fusion_version}")
27
21
  end
28
22
 
23
+ def fusion_version
24
+ # We ask the system profiler for all installed software
25
+ shell_results = shell_exec("system_profiler SPApplicationsDataType")
26
+
27
+ env.logger.info("Checking version by querying the system_profiler")
28
+ env.logger.debug(shell_results.stdout)
29
+
30
+ version = shell_results.stdout.split(/VMware/)[1].split(/\n/)[2].split(/:/)[1].strip
31
+ return version
32
+ end
29
33
 
30
34
  end #End Class
31
35
  end # End Module
@@ -4,5 +4,5 @@ end
4
4
 
5
5
  # Only set the version constant if it wasn't set before
6
6
  unless defined?(Veewee::VERSION)
7
- ::Veewee::VERSION="0.3.0.beta1"
7
+ ::Veewee::VERSION="0.3.0.beta2"
8
8
  end
@@ -0,0 +1,14 @@
1
+ # Base install
2
+
3
+ sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers
4
+
5
+ cat > /etc/yum.repos.d/epel.repo << EOM
6
+ [epel]
7
+ name=epel
8
+ baseurl=http://download.fedoraproject.org/pub/epel/6/\$basearch
9
+ enabled=1
10
+ gpgcheck=0
11
+ EOM
12
+
13
+ yum -y install gcc make gcc-c++ kernel-devel-`uname -r` zlib-devel openssl-devel readline-devel sqlite-devel perl wget
14
+
@@ -0,0 +1,3 @@
1
+ # Install Chef
2
+ gem install --no-ri --no-rdoc chef
3
+
@@ -0,0 +1,5 @@
1
+ yum -y erase gtk2 libX11 hicolor-icon-theme avahi freetype bitstream-vera-fonts
2
+ yum -y clean all
3
+ rm -rf /etc/yum.repos.d/{puppetlabs,epel}.repo
4
+ rm -rf VBoxGuestAdditions_*.iso
5
+
@@ -1,16 +1,40 @@
1
- Veewee::Definition.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',
1
+ Veewee::Session.declare({
2
+ :cpu_count => '1',
3
+ :memory_size=> '480',
4
+ :disk_size => '10140',
5
+ :disk_format => 'VDI',
6
+ :hostiocache => 'off',
7
+ :os_type_id => 'RedHat_64',
5
8
  :iso_file => "CentOS-6.0-i386-netinstall.iso",
6
9
  :iso_src => "http://vault.centos.org/6.0/isos/i386/CentOS-6.0-i386-netinstall.iso",
7
10
  :iso_md5 => "65731c29c49630dea6cde103d02ccffb",
8
11
  :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 => "10000", :ssh_user => "vagrant", :ssh_password => "vagrant", :ssh_key => "",
12
- :ssh_host_port => "7222", :ssh_guest_port => "22",
12
+ :boot_wait => "15",
13
+ :boot_cmd_sequence => [
14
+ '<Tab> text ks=http://%IP%:%PORT%/ks.cfg<Enter>'
15
+ ],
16
+ :kickstart_port => "7122",
17
+ :kickstart_timeout => 10000,
18
+ :kickstart_file => "ks.cfg",
19
+ :ssh_login_timeout => "10000",
20
+ :ssh_user => "veewee",
21
+ :ssh_password => "veewee",
22
+ :ssh_key => "",
23
+ :ssh_host_port => "7222",
24
+ :ssh_guest_port => "22",
13
25
  :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
14
26
  :shutdown_cmd => "/sbin/halt -h -p",
15
- :postinstall_files => [ "postinstall.sh"], :postinstall_timeout => 10000
27
+ :postinstall_files => [
28
+ "base.sh",
29
+ "ruby.sh",
30
+ "chef.sh",
31
+ "puppet.sh",
32
+ "vagrant.sh",
33
+ "virtualbox.sh",
34
+ #"kvm.sh",
35
+ #"vmfusion.sh",
36
+ "cleanup.sh",
37
+ "zerodisk.sh"
38
+ ],
39
+ :postinstall_timeout => 10000
16
40
  })
@@ -1,13 +1,13 @@
1
1
  install
2
- url --url=http://be.mirror.eurid.eu/centos/6.0/os/i386/
2
+ url --url=http://vault.centos.org/6.0/os/i386/
3
3
  lang en_US.UTF-8
4
4
  keyboard us
5
- network --bootproto dhcp
5
+ network --bootproto=dhcp
6
6
  rootpw --iscrypted $1$damlkd,f$UC/u5pUts5QiU3ow.CSso/
7
- firewall --enabled --trust eth0 --ssh
8
- authconfig --enableshadow --enablemd5
7
+ firewall --enabled --service=ssh
8
+ authconfig --enableshadow --passalgo=sha512
9
9
  selinux --disabled
10
- timezone Europe/Brussels
10
+ timezone UTC
11
11
  bootloader --location=mbr
12
12
 
13
13
  text
@@ -17,37 +17,26 @@ zerombr
17
17
  clearpart --all --initlabel
18
18
  autopart
19
19
 
20
- auth --useshadow --enablemd5
20
+ auth --useshadow --enablemd5
21
21
  firstboot --disabled
22
22
  reboot
23
23
 
24
- repo --name=epel --baseurl=http://download.fedoraproject.org/pub/epel/6/i386/ --includepkgs='ruby-augeas,ruby-shadow'
25
- repo --name=puppetlabs --baseurl=http://yum.puppetlabs.com/el/6/products/i386 --includepkgs='puppet,facter'
26
-
27
- %packages
28
- @ core
29
- ruby
30
- ruby-devel
31
- rubygems
32
- kernel-devel
33
- gcc
34
- gcc-c++
24
+ %packages --ignoremissing
25
+ @core
35
26
  bzip2
36
- make
37
- zlib-devel
38
- openssl-devel
39
- readline-devel
40
- sqlite-devel
41
- puppet
42
- facter
43
-
27
+ kernel-devel
28
+ kernel-headers
44
29
  -ipw2100-firmware
45
30
  -ipw2200-firmware
46
31
  -ivtv-firmware
32
+ %end
47
33
 
48
34
  %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.d/vagrant
53
- chmod 0440 /etc/sudoers.d/vagrant
35
+ /usr/bin/yum -y install sudo
36
+ /usr/sbin/groupadd veewee
37
+ /usr/sbin/useradd veewee -g veewee -G wheel
38
+ echo "veewee"|passwd --stdin veewee
39
+ echo "veewee ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/veewee
40
+ chmod 0440 /etc/sudoers.d/veewee
41
+ %end
42
+
@@ -0,0 +1,12 @@
1
+ # Install Puppet
2
+
3
+ cat > /etc/yum.repos.d/puppetlabs.repo << EOM
4
+ [puppetlabs]
5
+ name=puppetlabs
6
+ baseurl=http://yum.puppetlabs.com/el/6/products/\$basearch
7
+ enabled=1
8
+ gpgcheck=0
9
+ EOM
10
+
11
+ yum -y install puppet facter
12
+
@@ -0,0 +1,3 @@
1
+ # Install Ruby
2
+ yum -y install ruby ruby-devel rubygems
3
+
@@ -0,0 +1,18 @@
1
+ # Vagrant specific
2
+ date > /etc/vagrant_box_build_time
3
+
4
+ # Add vagrant user
5
+ /usr/sbin/groupadd vagrant
6
+ /usr/sbin/useradd vagrant -g vagrant -G wheel
7
+ echo "vagrant"|passwd --stdin vagrant
8
+ echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/vagrant
9
+ chmod 0440 /etc/sudoers.d/vagrant
10
+
11
+ # Installing vagrant keys
12
+ mkdir -pm 700 /home/vagrant/.ssh
13
+ wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O /home/vagrant/.ssh/authorized_keys
14
+ chmod 0600 /home/vagrant/.ssh/authorized_keys
15
+ chown -R vagrant /home/vagrant/.ssh
16
+
17
+ # Customize the message of the day
18
+ echo 'Welcome to your Vagrant-built virtual machine.' > /etc/motd