veewee 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +4 -0
- data/README.md +1 -1
- data/doc/definition.md +18 -0
- data/doc/kvm.md +28 -1
- data/doc/template.md +53 -2
- data/lib/veewee/command/fusion.rb +37 -3
- data/lib/veewee/command/vagrant/basebox.rb +2 -0
- data/lib/veewee/command/vagrant/winrm.rb +39 -0
- data/lib/veewee/command/vbox.rb +18 -0
- data/lib/veewee/definition.rb +13 -3
- data/lib/veewee/error.rb +3 -0
- data/lib/veewee/provider/core/box.rb +7 -0
- data/lib/veewee/provider/core/box/build.rb +34 -14
- data/lib/veewee/provider/core/box/copy.rb +17 -0
- data/lib/veewee/provider/core/box/exec.rb +31 -12
- data/lib/veewee/provider/core/box/floppy.rb +1 -0
- data/lib/veewee/provider/core/box/halt.rb +7 -3
- data/lib/veewee/provider/core/box/validate_tags.rb +8 -2
- data/lib/veewee/provider/core/box/wincp.rb +120 -0
- data/lib/veewee/provider/core/box/winrm.rb +59 -0
- data/lib/veewee/provider/core/helper/comm.rb +47 -0
- data/lib/veewee/provider/core/helper/web.rb +20 -9
- data/lib/veewee/provider/core/helper/winrm.rb +167 -0
- data/lib/veewee/provider/kvm/box/create.rb +59 -3
- data/lib/veewee/provider/kvm/provider.rb +6 -6
- data/lib/veewee/provider/parallels/box/helper/buildinfo.rb +1 -1
- data/lib/veewee/provider/virtualbox/box.rb +1 -0
- data/lib/veewee/provider/virtualbox/box/build.rb +4 -2
- data/lib/veewee/provider/virtualbox/box/create.rb +32 -12
- data/lib/veewee/provider/virtualbox/box/helper/buildinfo.rb +6 -3
- data/lib/veewee/provider/virtualbox/box/helper/create.rb +20 -5
- data/lib/veewee/provider/virtualbox/box/helper/winrm_options.rb +31 -0
- data/lib/veewee/provider/virtualbox/box/up.rb +33 -12
- data/lib/veewee/provider/virtualbox/box/winrm.rb +13 -0
- data/lib/veewee/provider/vmfusion/box.rb +2 -0
- data/lib/veewee/provider/vmfusion/box/add_share.rb +18 -0
- data/lib/veewee/provider/vmfusion/box/build.rb +3 -1
- data/lib/veewee/provider/vmfusion/box/create.rb +7 -2
- data/lib/veewee/provider/vmfusion/box/helper/buildinfo.rb +9 -6
- data/lib/veewee/provider/vmfusion/box/helper/ip.rb +1 -1
- data/lib/veewee/provider/vmfusion/box/helper/winrm_options.rb +21 -0
- data/lib/veewee/provider/vmfusion/box/template.rb +7 -3
- data/lib/veewee/provider/vmfusion/box/template.vmx.erb +6 -0
- data/lib/veewee/provider/vmfusion/box/winrm.rb +12 -0
- data/lib/veewee/provider/vmfusion/provider.rb +7 -1
- data/lib/veewee/version.rb +1 -1
- data/templates/CentOS-5.6-x86_64-netboot-packages/definition.rb +16 -0
- data/templates/CentOS-5.6-x86_64-netboot-packages/ks.cfg +47 -0
- data/templates/CentOS-5.6-x86_64-netboot-packages/postinstall.sh +61 -0
- data/templates/Debian-7.0-b3-amd64-netboot/base.sh +27 -0
- data/templates/Debian-7.0-b3-amd64-netboot/chef.sh +2 -0
- data/templates/Debian-7.0-b3-amd64-netboot/cleanup-virtualbox.sh +4 -0
- data/templates/Debian-7.0-b3-amd64-netboot/cleanup.sh +17 -0
- data/templates/Debian-7.0-b3-amd64-netboot/definition.rb +51 -0
- data/templates/Debian-7.0-b3-amd64-netboot/preseed.cfg +313 -0
- data/templates/Debian-7.0-b3-amd64-netboot/puppet.sh +2 -0
- data/templates/Debian-7.0-b3-amd64-netboot/ruby.sh +10 -0
- data/templates/Debian-7.0-b3-amd64-netboot/vagrant.sh +25 -0
- data/templates/Debian-7.0-b3-amd64-netboot/virtualbox.sh +13 -0
- data/templates/Debian-7.0-b3-amd64-netboot/zerodisk.sh +3 -0
- data/templates/Fedora-18-i386/definition.rb +17 -0
- data/templates/Fedora-18-i386/ks.cfg +75 -0
- data/templates/Fedora-18-i386/postinstall.sh +38 -0
- data/templates/Fedora-18-x86_64/definition.rb +17 -0
- data/templates/Fedora-18-x86_64/ks.cfg +75 -0
- data/templates/Fedora-18-x86_64/postinstall.sh +38 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/base.sh +30 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/chef.sh +3 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/cleanup.sh +5 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/definition.rb +40 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/ks.cfg +42 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/puppet.sh +12 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/ruby.sh +3 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/vagrant.sh +18 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/virtualbox.sh +8 -0
- data/templates/OracleLinux-6.3-x86_64-DVD/zerodisk.sh +3 -0
- data/templates/funtoo-latest-x86_64/definition.rb +37 -0
- data/templates/funtoo-latest-x86_64/postinstall.sh +401 -0
- data/templates/openbsd50_amd64/definition.rb +3 -2
- data/templates/openbsd50_amd64/postinstall.sh +4 -4
- data/templates/openbsd50_i386/definition.rb +4 -4
- data/templates/openbsd52_amd64/README +28 -0
- data/templates/openbsd52_amd64/definition.rb +85 -0
- data/templates/openbsd52_amd64/postinstall.sh +81 -0
- data/templates/openbsd52_i386/README +28 -0
- data/templates/openbsd52_i386/definition.rb +85 -0
- data/templates/openbsd52_i386/postinstall.sh +81 -0
- data/templates/windows-2008R1-serverstandard-amd64/Autounattend.xml +6 -6
- data/templates/windows-2008R1-serverweb-amd64/install-winrm.bat +1 -1
- data/templates/windows-2008R2-serverstandard-amd64-winrm/Autounattend.xml +224 -0
- data/templates/windows-2008R2-serverstandard-amd64-winrm/README.md +87 -0
- data/templates/windows-2008R2-serverstandard-amd64-winrm/definition.rb +33 -0
- data/templates/windows-2008R2-serverstandard-amd64-winrm/install-chef.bat +2 -0
- data/templates/windows-2008R2-serverstandard-amd64-winrm/install-vbox.bat +4 -0
- data/templates/windows-2008R2-serverstandard-amd64-winrm/oracle-cert.cer +0 -0
- data/templates/windows-2008R2-serverstandard-amd64-winrm/postinstall.sh +74 -0
- data/templates/windows-7-enterprise-amd64-winrm/Autounattend.xml +227 -0
- data/templates/windows-7-enterprise-amd64-winrm/README.md +52 -0
- data/templates/windows-7-enterprise-amd64-winrm/definition.rb +27 -0
- data/templates/windows-7-enterprise-amd64-winrm/install-chef.bat +2 -0
- data/templates/windows-7-enterprise-amd64-winrm/install-fusion.bat +18 -0
- data/templates/windows-7-enterprise-amd64-winrm/install-puppet.bat +4 -0
- data/templates/windows-7-enterprise-amd64-winrm/install-vbox.bat +4 -0
- data/templates/windows-7-enterprise-amd64-winrm/oracle-cert.cer +0 -0
- data/templates/windows-7-enterprise-amd64-winrm/postinstall.bat +74 -0
- data/validation/veewee-windows.feature +34 -0
- data/veewee.gemspec +1 -1
- metadata +73 -7
@@ -31,6 +31,15 @@ module Veewee
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
def add_winrm_nat_mapping
|
35
|
+
|
36
|
+
unless definition.nil?
|
37
|
+
#Map SSH Ports
|
38
|
+
command="#{@vboxcmd} modifyvm '#{name}' --natpf1 'guestwinrm,tcp,,#{definition.winrm_host_port},,#{definition.winrm_guest_port}'"
|
39
|
+
shell_exec("#{command}")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
34
43
|
def add_shared_folder
|
35
44
|
command="#{@vboxcmd} sharedfolder add \"#{name}\" --name \"veewee-validation\" --hostpath \"#{File.expand_path(env.validation_dir)}\" --automount"
|
36
45
|
shell_exec("#{command}")
|
@@ -75,8 +84,7 @@ module Veewee
|
|
75
84
|
|
76
85
|
end
|
77
86
|
|
78
|
-
def
|
79
|
-
|
87
|
+
def attach_disk_common(storagectl, device_number)
|
80
88
|
place=get_vbox_home
|
81
89
|
location=name+"."+definition.disk_format.downcase
|
82
90
|
|
@@ -84,16 +92,23 @@ module Veewee
|
|
84
92
|
ui.info "Attaching disk: #{location}"
|
85
93
|
|
86
94
|
#command => "${vboxcmd} storageattach \"${vname}\" --storagectl \"SATA Controller\" --port 0 --device 0 --type hdd --medium \"${vname}.vdi\"",
|
87
|
-
command ="#{@vboxcmd} storageattach \"#{name}\" --storagectl \"
|
95
|
+
command ="#{@vboxcmd} storageattach \"#{name}\" --storagectl \"#{storagectl}\" --port 0 --device #{device_number} --type hdd --medium \"#{location}\""
|
88
96
|
shell_exec("#{command}")
|
97
|
+
end
|
98
|
+
|
99
|
+
def attach_disk_ide(device_number=0)
|
100
|
+
self.attach_disk_common("IDE Controller", device_number)
|
101
|
+
end
|
89
102
|
|
103
|
+
def attach_disk_sata(device_number=0)
|
104
|
+
self.attach_disk_common("SATA Controller", device_number)
|
90
105
|
end
|
91
106
|
|
92
107
|
|
93
|
-
def attach_isofile
|
108
|
+
def attach_isofile(device_number=0)
|
94
109
|
full_iso_file=File.join(env.config.veewee.iso_dir,definition.iso_file)
|
95
110
|
ui.info "Mounting cdrom: #{full_iso_file}"
|
96
|
-
command ="#{@vboxcmd} storageattach \"#{name}\" --storagectl \"IDE Controller\" --type dvddrive --port 0 --device
|
111
|
+
command ="#{@vboxcmd} storageattach \"#{name}\" --storagectl \"IDE Controller\" --type dvddrive --port 0 --device #{device_number} --medium \"#{full_iso_file}\""
|
97
112
|
shell_exec("#{command}")
|
98
113
|
end
|
99
114
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Veewee
|
2
|
+
module Provider
|
3
|
+
module Virtualbox
|
4
|
+
module BoxCommand
|
5
|
+
|
6
|
+
def winrm_options
|
7
|
+
port=definition.winrm_host_port
|
8
|
+
if self.exists?
|
9
|
+
forward=self.forwarding("guestwinrm")
|
10
|
+
unless forward.nil?
|
11
|
+
port=forward[:host_port]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
winrm_options={
|
16
|
+
:user => definition.winrm_user,
|
17
|
+
:pass => definition.winrm_password,
|
18
|
+
:port => port,
|
19
|
+
# :port => (port.to_i+1).to_s, # debug, by running charles with a reverse proxy
|
20
|
+
:basic_auth_only => true,
|
21
|
+
:timeout => definition.winrm_login_timeout.to_i,
|
22
|
+
:operation_timeout => 600 # ten minutes
|
23
|
+
}
|
24
|
+
return winrm_options
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -13,20 +13,41 @@ module Veewee
|
|
13
13
|
|
14
14
|
raise Veewee::Error,"Box is already running" if self.running?
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
16
|
+
if definition.winrm_user && definition.winrm_password # prefer winrm
|
17
|
+
# Before we start,correct the ssh/winrm port if needed
|
18
|
+
forward=self.forwarding("guestwinrm")
|
19
|
+
guessed_port=guess_free_port(definition.winrm_host_port.to_i,definition.winrm_host_port.to_i+40).to_s
|
20
|
+
definition.winrm_host_port=guessed_port.to_s
|
21
|
+
|
22
|
+
unless forward.nil?
|
23
|
+
if guessed_port!=forward[:guest_port]
|
24
|
+
# Remove the existing one
|
25
|
+
self.delete_forwarding("guestwinrm")
|
26
|
+
env.ui.warn "Changing winrm port on UP from #{forward[:guest_port]} to #{guessed_port}"
|
27
|
+
self.add_winrm_nat_mapping
|
28
|
+
end
|
29
|
+
else
|
30
|
+
self.add_winrm_nat_mapping
|
27
31
|
end
|
32
|
+
|
28
33
|
else
|
29
|
-
|
34
|
+
|
35
|
+
# Before we start,correct the ssh port if needed
|
36
|
+
forward=self.forwarding("guestssh")
|
37
|
+
guessed_port=guess_free_port(definition.ssh_host_port.to_i,definition.ssh_host_port.to_i+40).to_s
|
38
|
+
definition.ssh_host_port=guessed_port.to_s
|
39
|
+
|
40
|
+
unless forward.nil?
|
41
|
+
if guessed_port!=forward[:guest_port]
|
42
|
+
# Remove the existing one
|
43
|
+
self.delete_forwarding("guestssh")
|
44
|
+
env.ui.warn "Changing ssh port from #{forward[:guest_port]} to #{guessed_port}"
|
45
|
+
self.add_ssh_nat_mapping
|
46
|
+
end
|
47
|
+
else
|
48
|
+
self.add_ssh_nat_mapping
|
49
|
+
end
|
50
|
+
|
30
51
|
end
|
31
52
|
|
32
53
|
self.suppress_messages
|
@@ -5,6 +5,7 @@ require 'veewee/provider/core/helper/tcp'
|
|
5
5
|
require 'veewee/provider/vmfusion/box/helper/status'
|
6
6
|
require 'veewee/provider/vmfusion/box/helper/ip'
|
7
7
|
require 'veewee/provider/vmfusion/box/helper/ssh_options'
|
8
|
+
require 'veewee/provider/vmfusion/box/helper/winrm_options'
|
8
9
|
require 'veewee/provider/vmfusion/box/helper/vnc'
|
9
10
|
require 'veewee/provider/vmfusion/box/helper/console_type'
|
10
11
|
require 'veewee/provider/vmfusion/box/helper/buildinfo'
|
@@ -19,6 +20,7 @@ require 'veewee/provider/vmfusion/box/ssh'
|
|
19
20
|
require 'veewee/provider/vmfusion/box/template'
|
20
21
|
require 'veewee/provider/vmfusion/box/validate_vmfusion'
|
21
22
|
require 'veewee/provider/vmfusion/box/export_ova'
|
23
|
+
require 'veewee/provider/vmfusion/box/add_share'
|
22
24
|
|
23
25
|
|
24
26
|
module Veewee
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Veewee
|
2
|
+
module Provider
|
3
|
+
module Vmfusion
|
4
|
+
module BoxCommand
|
5
|
+
# This function 'adds a share' the box based on the definition
|
6
|
+
def add_share(share_name, share_path)
|
7
|
+
shell_exec("#{(vmrun_cmd).shellescape} -T fusion addSharedFolder #{vmx_file_path.shellescape} '#{share_name}' #{::File.expand_path(share_path).shellescape}")
|
8
|
+
end
|
9
|
+
|
10
|
+
def add_share_from_defn
|
11
|
+
definition.add_shares.each do |share_name, share_path|
|
12
|
+
add_share(share_name, share_path)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -43,16 +43,21 @@ module Veewee
|
|
43
43
|
fusion_definition=definition.dup
|
44
44
|
|
45
45
|
fusion_definition.os_type_id=fusion_os_type(definition.os_type_id)
|
46
|
-
|
46
|
+
|
47
47
|
FileUtils.mkdir_p(vm_path)
|
48
48
|
current_dir=FileUtils.pwd
|
49
49
|
FileUtils.chdir(vm_path)
|
50
|
+
|
51
|
+
unless definition.vmdk_file.nil?
|
52
|
+
src = "#{File.join(definition.path,definition.vmdk_file)}"
|
53
|
+
FileUtils.cp(src, vm_path)
|
54
|
+
end
|
55
|
+
|
50
56
|
aFile = File.new(vmx_file_path, "w")
|
51
57
|
aFile.write(vmx_template(fusion_definition))
|
52
58
|
aFile.close
|
53
59
|
FileUtils.chdir(current_dir)
|
54
60
|
end
|
55
|
-
|
56
61
|
end
|
57
62
|
end
|
58
63
|
end
|
@@ -40,12 +40,15 @@ module Veewee
|
|
40
40
|
# When we get here, ssh is available and no postinstall scripts have been executed yet
|
41
41
|
# So we begin by transferring the ISO file of the vmware tools
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
43
|
+
if not (definition.winrm_user && definition.winrm_password)
|
44
|
+
# with windows, we just use the mounted volume
|
45
|
+
env.logger.info "About to transfer vmware tools iso buildinfo to the box #{name} - #{ip_address} - #{ssh_options}"
|
46
|
+
iso_image=guest_iso_path
|
47
|
+
if File.exists?(iso_image)
|
48
|
+
self.copy_to_box(iso_image,File.basename(iso_image))
|
49
|
+
else
|
50
|
+
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'"
|
51
|
+
end
|
49
52
|
end
|
50
53
|
end
|
51
54
|
|
@@ -25,7 +25,7 @@ module Veewee
|
|
25
25
|
raise ::Fission::Error,"VM #{name} does not exist" unless self.exists?
|
26
26
|
|
27
27
|
unless mac_address.nil?
|
28
|
-
lease = Fission::Lease.
|
28
|
+
lease = Fission::Lease.find_by_mac_address(mac_address).data
|
29
29
|
return lease.ip_address unless lease.nil?
|
30
30
|
return nil
|
31
31
|
else
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Veewee
|
2
|
+
module Provider
|
3
|
+
module Vmfusion
|
4
|
+
module BoxCommand
|
5
|
+
|
6
|
+
def winrm_options
|
7
|
+
winrm_options={
|
8
|
+
:user => definition.winrm_user,
|
9
|
+
:pass => definition.winrm_password,
|
10
|
+
:port => definition.winrm_host_port,
|
11
|
+
:basic_auth_only => true,
|
12
|
+
:timeout => definition.winrm_login_timeout.to_i,
|
13
|
+
:operation_timeout => 600 # ten minutes
|
14
|
+
}
|
15
|
+
return winrm_options
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -17,14 +17,16 @@ module Veewee
|
|
17
17
|
unless definition.floppy_files.nil?
|
18
18
|
floppy_path=File.join(definition.path,'virtualfloppy.img')
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
# Depending on the fusion version, we need to update the virtualhw version
|
22
22
|
if @provider.fusion_version.start_with?('5.')
|
23
23
|
virtualhw_version = 9
|
24
24
|
else
|
25
25
|
virtualhw_version = 7
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
|
+
puts definition.vmdk_file
|
29
|
+
vmdk_file = File.basename(definition.vmdk_file) unless definition.vmdk_file.nil?
|
28
30
|
# Setup the variables for in the erb template
|
29
31
|
data = {
|
30
32
|
:cpu_count => definition.cpu_count, :memory_size => definition.memory_size,
|
@@ -35,7 +37,9 @@ module Veewee
|
|
35
37
|
:mac_addres => "auto generated",
|
36
38
|
:iso_file => "#{File.join(env.config.veewee.iso_dir,definition.iso_file)}",
|
37
39
|
:box_name => name,
|
38
|
-
:vnc_port => guess_vnc_port
|
40
|
+
:vnc_port => guess_vnc_port,
|
41
|
+
:fusion_version => @provider.fusion_version,
|
42
|
+
:vmdk_file => vmdk_file
|
39
43
|
}
|
40
44
|
|
41
45
|
vars = ErbBinding.new(data)
|
@@ -82,3 +82,9 @@ ethernet0.displayName = "Ethernet"
|
|
82
82
|
sound.startConnected = "FALSE"
|
83
83
|
RemoteDisplay.vnc.enabled = "TRUE"
|
84
84
|
RemoteDisplay.vnc.port = "<%= vnc_port %>"
|
85
|
+
<% if fusion_version.start_with?('5.') %>bios.bootOrder = "hdd,CDROM"<% end %>
|
86
|
+
<% unless vmdk_file.nil? %>
|
87
|
+
scsi0:2.present = "TRUE"
|
88
|
+
scsi0:2.fileName = "<%= vmdk_file %>"
|
89
|
+
scsi0:2.redo = ""
|
90
|
+
<% end %>
|
@@ -27,7 +27,13 @@ module Veewee
|
|
27
27
|
env.logger.info("Checking version by querying the system_profiler")
|
28
28
|
env.logger.debug(shell_results.stdout)
|
29
29
|
|
30
|
-
|
30
|
+
if (shell_results.stdout == "")
|
31
|
+
ui.warn "Could not detect the exact version of vmware. assuming 5.1"
|
32
|
+
version = "5.1"
|
33
|
+
else
|
34
|
+
version = shell_results.stdout.split(/VMware/)[1].split(/\n/)[2].split(/:/)[1].strip
|
35
|
+
end
|
36
|
+
|
31
37
|
return version
|
32
38
|
end
|
33
39
|
|
data/lib/veewee/version.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
Veewee::Definition.declare({
|
2
|
+
:cpu_count => '1', :memory_size=> '384',
|
3
|
+
:disk_size => '10140', :disk_format => 'VDI', :hostiocache => 'off', :ioapic => 'on', :pae => 'on',
|
4
|
+
:os_type_id => 'RedHat_64',
|
5
|
+
:iso_file => "CentOS-5.6-x86_64-netinstall.iso",
|
6
|
+
:iso_src => "http://vault.centos.org/5.6/isos/x86_64/CentOS-5.6-x86_64-netinstall.iso",
|
7
|
+
:iso_md5 => "02cf3a5e32aaa5eed27af775ad292beb",
|
8
|
+
:iso_download_timeout => 1000,
|
9
|
+
:boot_wait => "10", :boot_cmd_sequence => [ 'linux 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",
|
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,47 @@
|
|
1
|
+
# Kickstart file automatically generated by anaconda.
|
2
|
+
|
3
|
+
install
|
4
|
+
url --url=http://vault.centos.org/5.6/os/x86_64
|
5
|
+
lang en_US.UTF-8
|
6
|
+
langsupport --default=en_US.UTF-8 en_US.UTF-8
|
7
|
+
keyboard us
|
8
|
+
xconfig --card "VMWare" --videoram 16384 --hsync 31.5-37.9 --vsync 50-70 --resolution 800x600 --depth 16
|
9
|
+
network --device eth0 --bootproto dhcp
|
10
|
+
rootpw --iscrypted $1$vSG8FjAu$ekQ0grf16hS4G93HTPcco/
|
11
|
+
firewall --enabled --trust eth0 --ssh
|
12
|
+
selinux --enforcing
|
13
|
+
authconfig --enableshadow --enablemd5
|
14
|
+
timezone Europe/London
|
15
|
+
bootloader --location=mbr
|
16
|
+
# The following is the partition information you requested
|
17
|
+
# Note that any partitions you deleted are not expressed
|
18
|
+
# here so unless you clear all partitions first, this is
|
19
|
+
# not guaranteed to work
|
20
|
+
clearpart --all --drives=sda --initlabel
|
21
|
+
part /boot --fstype ext3 --size=100 --ondisk=sda
|
22
|
+
part pv.2 --size=0 --grow --ondisk=sda
|
23
|
+
volgroup VolGroup00 --pesize=32768 pv.2
|
24
|
+
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=528 --grow --maxsize=1056
|
25
|
+
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
|
26
|
+
reboot
|
27
|
+
|
28
|
+
%packages
|
29
|
+
#@ admin-tools
|
30
|
+
#@ text-internet
|
31
|
+
#@ dialup
|
32
|
+
#@ smb-server
|
33
|
+
#@ web-server
|
34
|
+
#@ printing
|
35
|
+
#@ server-cfg
|
36
|
+
@ core
|
37
|
+
grub
|
38
|
+
e2fsprogs
|
39
|
+
lvm2
|
40
|
+
kernel
|
41
|
+
kernel-devel
|
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,61 @@
|
|
1
|
+
# based on http://chrisadams.me.uk/2010/05/10/setting-up-a-centos-base-box-for-development-and-testing-with-vagrant/
|
2
|
+
# but with all the source building moved to packages & puppet focussed
|
3
|
+
|
4
|
+
date > /etc/vagrant_box_build_time
|
5
|
+
|
6
|
+
fail()
|
7
|
+
{
|
8
|
+
echo "FATAL: $*"
|
9
|
+
exit 1
|
10
|
+
}
|
11
|
+
|
12
|
+
#kernel source is needed for vbox additions
|
13
|
+
yum -y install gcc bzip2 make
|
14
|
+
# kernel-devel-`uname -r` is now installed in the KS to ensure we get matching kernel & kernel-devel on the first boot
|
15
|
+
#yum -y update
|
16
|
+
#yum -y upgrade
|
17
|
+
|
18
|
+
yum -y install gcc-c++ zlib-devel openssl-devel readline-devel sqlite3-devel
|
19
|
+
yum -y erase gtk2 libX11 hicolor-icon-theme avahi freetype bitstream-vera-fonts
|
20
|
+
|
21
|
+
# puppet
|
22
|
+
rpm -ivh http://yum.puppetlabs.com/el/5/products/i386/puppetlabs-release-5-6.noarch.rpm
|
23
|
+
yum -y install puppet-2.6.10
|
24
|
+
|
25
|
+
# chef, via gem
|
26
|
+
#yum install ruby ruby-devel ruby-ri ruby-rdoc ruby-shadow gcc gcc-c++ automake autoconf make curl dmidecode
|
27
|
+
#gem install chef --no-ri --no-rdoc
|
28
|
+
|
29
|
+
# chef, via rpms (I'm not sure how sane this is, it installs lots of rubygem-xxx packages)
|
30
|
+
rpm -Uvh http://rbel.co/rbel5
|
31
|
+
yum -y install rubygem-chef
|
32
|
+
|
33
|
+
# clean up yum meta data cache
|
34
|
+
yum -y clean all
|
35
|
+
|
36
|
+
#Installing vagrant keys
|
37
|
+
mkdir /home/vagrant/.ssh
|
38
|
+
chmod 700 /home/vagrant/.ssh
|
39
|
+
cd /home/vagrant/.ssh
|
40
|
+
wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys
|
41
|
+
chown -R vagrant /home/vagrant/.ssh
|
42
|
+
|
43
|
+
#Installing the virtualbox guest additions
|
44
|
+
VBOX_VERSION=$(cat /home/vagrant/.vbox_version)
|
45
|
+
cd /tmp
|
46
|
+
wget http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso
|
47
|
+
mount -o loop VBoxGuestAdditions_$VBOX_VERSION.iso /mnt
|
48
|
+
sh /mnt/VBoxLinuxAdditions.run
|
49
|
+
umount /mnt
|
50
|
+
|
51
|
+
rm VBoxGuestAdditions_$VBOX_VERSION.iso
|
52
|
+
|
53
|
+
|
54
|
+
sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers
|
55
|
+
sed -i "s/^\(.*env_keep = \"\)/\1PATH /" /etc/sudoers
|
56
|
+
|
57
|
+
# Zero out the free space to save space in the final image:
|
58
|
+
dd if=/dev/zero of=/EMPTY bs=1M
|
59
|
+
rm -f /EMPTY
|
60
|
+
|
61
|
+
exit
|