veewee 0.1.26 → 0.1.27
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/README.md +107 -99
- data/lib/veewee/command.rb +2 -1
- data/lib/veewee/scancode.rb +21 -4
- data/lib/veewee/session.rb +2 -2
- data/lib/veewee/version.rb +1 -1
- data/templates/CentOS-5.6-x86_64-netboot/definition.rb +16 -0
- data/templates/CentOS-5.6-x86_64-netboot/ks.cfg +45 -0
- data/templates/CentOS-5.6-x86_64-netboot/postinstall.sh +58 -0
- data/templates/{Debian-6.0.1a-amd64-netboot → Debian-5.0.8-amd64-netboot}/definition.rb +3 -3
- data/templates/Debian-5.0.8-amd64-netboot/postinstall.sh +57 -0
- data/templates/{Debian-6.0.1a-amd64-netboot → Debian-5.0.8-amd64-netboot}/preseed.cfg +0 -0
- data/templates/Debian-5.0.8-i386-netboot/definition.rb +39 -0
- data/templates/Debian-5.0.8-i386-netboot/postinstall.sh +57 -0
- data/templates/Debian-5.0.8-i386-netboot/preseed.cfg +312 -0
- data/templates/Debian-6.0.2-amd64-netboot/definition.rb +39 -0
- data/templates/Debian-6.0.2-amd64-netboot/postinstall.sh +68 -0
- data/templates/Debian-6.0.2-amd64-netboot/preseed.cfg +312 -0
- data/templates/{Debian-6.0.1a-i386-netboot → Debian-6.0.2-i386-netboot}/definition.rb +3 -3
- data/templates/{Debian-6.0.1a-i386-netboot → Debian-6.0.2-i386-netboot}/postinstall.sh +22 -2
- data/templates/{Debian-6.0.1a-i386-netboot → Debian-6.0.2-i386-netboot}/preseed.cfg +0 -0
- data/templates/archlinux-64-aif-experimental/definition.rb +29 -0
- data/templates/archlinux-64-aif-experimental/postinstall.sh +6 -0
- data/templates/archlinux-64-experimental/autorun0 +6 -0
- data/templates/archlinux-64-experimental/definition.rb +21 -0
- data/templates/archlinux-64-experimental/postinstall.sh +190 -0
- data/templates/archlinux-i686/definition.rb +1 -1
- data/templates/openindiana-148-ai-x86/auto_install/ai.dtd +58 -0
- data/templates/openindiana-148-ai-x86/auto_install/ai_manifest.xml +241 -0
- data/templates/openindiana-148-ai-x86/auto_install/configuration.dtd +44 -0
- data/templates/openindiana-148-ai-x86/auto_install/default.xml +121 -0
- data/templates/openindiana-148-ai-x86/auto_install/default.xml.orig +124 -0
- data/templates/openindiana-148-ai-x86/auto_install/sc_profiles/static_network.xml +105 -0
- data/templates/openindiana-148-ai-x86/auto_install/software.dtd +105 -0
- data/templates/openindiana-148-ai-x86/auto_install/target.dtd +196 -0
- data/templates/openindiana-148-ai-x86/default.xml +121 -0
- data/templates/openindiana-148-ai-x86/definition.rb +59 -0
- data/templates/openindiana-148-ai-x86/postinstall.sh +101 -0
- data/templates/solaris-11-express-i386/definition.rb +6 -11
- data/templates/solaris-11-express-i386/postinstall.sh +2 -2
- data/templates/ubuntu-10.04.2-amd64-netboot/postinstall.sh +1 -0
- data/templates/ubuntu-10.04.2-server-amd64/postinstall.sh +1 -0
- data/templates/ubuntu-10.04.2-server-i386-netboot/postinstall.sh +1 -0
- data/templates/ubuntu-10.04.2-server-i386/postinstall.sh +1 -0
- data/templates/ubuntu-10.10-server-amd64-netboot/postinstall.sh +1 -0
- data/templates/ubuntu-10.10-server-amd64/postinstall.sh +1 -0
- data/templates/ubuntu-10.10-server-i386-netboot/postinstall.sh +1 -0
- data/templates/ubuntu-10.10-server-i386/postinstall.sh +1 -0
- data/templates/ubuntu-11.04-server-amd64/postinstall.sh +1 -0
- data/templates/ubuntu-11.04-server-i386/postinstall.sh +1 -0
- data/templates/ubuntu-8.04.4-server-amd64/definition.rb +25 -0
- data/templates/ubuntu-8.04.4-server-amd64/postinstall.sh +66 -0
- data/templates/ubuntu-8.04.4-server-amd64/preseed.cfg +88 -0
- data/templates/ubuntu-8.04.4-server-i386/definition.rb +25 -0
- data/templates/{Debian-6.0.1a-amd64-netboot → ubuntu-8.04.4-server-i386}/postinstall.sh +7 -10
- data/templates/ubuntu-8.04.4-server-i386/preseed.cfg +87 -0
- data/templates/{windows-2008R2-amd64-experimental → windows-2008R2-amd64}/Autounattend.xml +1 -1
- data/templates/windows-2008R2-amd64/README.md +68 -0
- data/templates/{windows-2008R2-amd64-experimental → windows-2008R2-amd64}/cygwin-setup.exe +0 -0
- data/templates/{windows-2008R2-amd64-experimental → windows-2008R2-amd64}/definition.rb +2 -3
- data/templates/{windows-2008R2-amd64-experimental/cygwin-sshd.bat → windows-2008R2-amd64/install-cygwin-sshd.bat} +0 -0
- data/templates/{windows-2008R2-amd64-experimental → windows-2008R2-amd64}/install-winrm.bat +0 -0
- data/templates/windows-2008R2-amd64/oracle-cert.cer +0 -0
- data/templates/windows-2008R2-amd64/postinstall.sh +122 -0
- data/templates/{windows-2008R2-amd64-experimental → windows-2008R2-amd64}/winrm.rb +0 -0
- metadata +50 -19
- data/templates/windows-2008R2-amd64-experimental/README.md +0 -33
- data/templates/windows-2008R2-amd64-experimental/note-virtualbox-additions.txt +0 -23
- data/templates/windows-2008R2-amd64-experimental/postinstall.sh +0 -48
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -5,114 +5,126 @@ The first step is to download an existing 'base box'. I believe this scares a lo
|
|
5
5
|
Veewee tries to automate this and to share the knowledge and sources you need to create a basebox. Instead of creating custom ISO's from your favorite distribution, it leverages the 'keyboardputscancode' command of Virtualbox so send the actual 'boot prompt' keysequence to boot an existing iso.
|
6
6
|
|
7
7
|
Before we can actually build the boxes, we need to take care of the minimal things to install:
|
8
|
+
|
8
9
|
- Have Virtualbox 4.x installed -> download it from http://download.virtualbox.org/virtualbox/
|
9
10
|
|
10
11
|
|
11
12
|
People have reported good experiences, why don't you give it a try?
|
12
13
|
|
13
|
-
## Installation:
|
14
|
+
## Installation:
|
14
15
|
__as a gem__
|
15
|
-
|
16
|
-
$ gem install veewee
|
17
|
-
</pre>
|
16
|
+
|
17
|
+
$ gem install veewee
|
18
18
|
|
19
19
|
__from source__
|
20
|
-
|
21
|
-
$ git clone https://github.com/jedi4ever/veewee.git
|
22
|
-
$ cd veewee
|
23
|
-
$ gem install bundler
|
24
|
-
$ bundle install
|
20
|
+
|
21
|
+
$ git clone https://github.com/jedi4ever/veewee.git
|
22
|
+
$ cd veewee
|
23
|
+
$ gem install bundler
|
24
|
+
$ bundle install
|
25
25
|
|
26
26
|
If you don't use rvm, be sure to execute vagrant through bundle exec
|
27
|
-
|
28
|
-
|
27
|
+
|
28
|
+
$ alias vagrant="bundle exec vagrant"
|
29
29
|
|
30
30
|
|
31
31
|
## List all templates
|
32
|
-
|
33
|
-
$ vagrant basebox templates
|
34
|
-
The following templates are available:
|
35
|
-
|
36
|
-
vagrant basebox define '<boxname>' '
|
37
|
-
vagrant basebox define '<boxname>' '
|
38
|
-
vagrant basebox define '<boxname>' '
|
39
|
-
vagrant basebox define '<boxname>' '
|
40
|
-
vagrant basebox define '<boxname>' '
|
41
|
-
vagrant basebox define '<boxname>' '
|
42
|
-
vagrant basebox define '<boxname>' '
|
43
|
-
vagrant basebox define '<boxname>' '
|
44
|
-
vagrant basebox define '<boxname>' '
|
45
|
-
vagrant basebox define '<boxname>' '
|
46
|
-
vagrant basebox define '<boxname>' '
|
47
|
-
vagrant basebox define '<boxname>' '
|
48
|
-
vagrant basebox define '<boxname>' '
|
49
|
-
vagrant basebox define '<boxname>' '
|
50
|
-
vagrant basebox define '<boxname>' '
|
51
|
-
vagrant basebox define '<boxname>' '
|
52
|
-
vagrant basebox define '<boxname>' '
|
53
|
-
vagrant basebox define '<boxname>' 'ubuntu-10.
|
54
|
-
vagrant basebox define '<boxname>' '
|
55
|
-
vagrant basebox define '<boxname>' '
|
56
|
-
vagrant basebox define '<boxname>' 'ubuntu-10.
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
32
|
+
|
33
|
+
$ vagrant basebox templates
|
34
|
+
The following templates are available:
|
35
|
+
vagrant basebox define '<boxname>' 'ubuntu-10.10-server-i386-netboot'
|
36
|
+
vagrant basebox define '<boxname>' 'ubuntu-10.10-server-amd64-netboot'
|
37
|
+
vagrant basebox define '<boxname>' 'solaris-11-express-i386'
|
38
|
+
vagrant basebox define '<boxname>' 'freebsd-8.2-pcbsd-i386-netboot'
|
39
|
+
vagrant basebox define '<boxname>' 'Fedora-14-amd64-netboot'
|
40
|
+
vagrant basebox define '<boxname>' 'ubuntu-11.04-server-amd64'
|
41
|
+
vagrant basebox define '<boxname>' 'freebsd-8.2-experimental'
|
42
|
+
vagrant basebox define '<boxname>' 'archlinux-i686'
|
43
|
+
vagrant basebox define '<boxname>' 'CentOS-5.6-i386-netboot'
|
44
|
+
vagrant basebox define '<boxname>' 'openindiana-148-ai-x86'
|
45
|
+
vagrant basebox define '<boxname>' 'ubuntu-10.10-server-i386'
|
46
|
+
vagrant basebox define '<boxname>' 'ubuntu-10.04.2-server-i386'
|
47
|
+
vagrant basebox define '<boxname>' 'ubuntu-10.04.2-amd64-netboot'
|
48
|
+
vagrant basebox define '<boxname>' 'Sysrescuecd-2.0.0-experimental'
|
49
|
+
vagrant basebox define '<boxname>' 'Debian-6.0.1a-amd64-netboot'
|
50
|
+
vagrant basebox define '<boxname>' 'freebsd-8.2-pcbsd-i386'
|
51
|
+
vagrant basebox define '<boxname>' 'Fedora-14-i386'
|
52
|
+
vagrant basebox define '<boxname>' 'Fedora-14-amd64'
|
53
|
+
vagrant basebox define '<boxname>' 'ubuntu-10.04.2-server-i386-netboot'
|
54
|
+
vagrant basebox define '<boxname>' 'opensuse-11.4-i386-experimental'
|
55
|
+
vagrant basebox define '<boxname>' 'CentOS-4.8-i386'
|
56
|
+
vagrant basebox define '<boxname>' 'ubuntu-10.04.2-server-amd64'
|
57
|
+
vagrant basebox define '<boxname>' 'ubuntu-8.04.4-server-amd64'
|
58
|
+
vagrant basebox define '<boxname>' 'gentoo-latest-i386-experimental'
|
59
|
+
vagrant basebox define '<boxname>' 'ubuntu-8.04.4-server-i386'
|
60
|
+
vagrant basebox define '<boxname>' 'windows-2008R2-amd64'
|
61
|
+
vagrant basebox define '<boxname>' 'Fedora-14-i386-netboot'
|
62
|
+
vagrant basebox define '<boxname>' 'archlinux-64-experimental'
|
63
|
+
vagrant basebox define '<boxname>' 'Debian-6.0.1a-i386-netboot'
|
64
|
+
vagrant basebox define '<boxname>' 'ubuntu-10.10-server-amd64'
|
65
|
+
vagrant basebox define '<boxname>' 'archlinux-64-aif-experimental'
|
66
|
+
vagrant basebox define '<boxname>' 'ubuntu-11.04-server-i386'
|
67
|
+
vagrant basebox define '<boxname>' 'CentOS-5.6-i386'
|
68
|
+
|
69
|
+
|
70
|
+
## Define a new box
|
61
71
|
Let's define a Ubuntu 10.10 server i386 basebox called myunbuntubox
|
62
72
|
this is essentially making a copy based on the templates provided above.
|
63
|
-
|
64
|
-
|
73
|
+
|
74
|
+
$ vagrant basebox define 'myubuntubox' 'ubuntu-10.10-server-i386'
|
75
|
+
The basebox 'myubuntubox' has been succesfully created from the template ''ubuntu-10.10-server-i386'
|
76
|
+
You can now edit the definition files stored in definitions/myubuntubox
|
77
|
+
or build the box with:
|
78
|
+
vagrant basebox build 'myubuntubox'
|
65
79
|
|
66
80
|
-> This copies over the templates/ubuntu-10.10-server-i386 to definition/myubuntubox
|
67
81
|
|
68
|
-
|
69
|
-
definition.rb postinstall.sh postinstall2.sh preseed.cfg
|
70
|
-
</pre>
|
82
|
+
$ ls definitions/myubuntubox
|
83
|
+
definition.rb postinstall.sh postinstall2.sh preseed.cfg
|
71
84
|
|
72
85
|
## Optionally modify the definition.rb , postinstall.sh or preseed.cfg
|
73
86
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
)
|
101
|
-
</pre>
|
87
|
+
Veewee::Session.declare( {
|
88
|
+
:cpu_count => '1', :memory_size=> '256',
|
89
|
+
:disk_size => '10140', :disk_format => 'VDI',
|
90
|
+
:os_type_id => 'Ubuntu',
|
91
|
+
:iso_file => "ubuntu-10.10-server-i386.iso",
|
92
|
+
:iso_src => "http://releases.ubuntu.com/maverick/ubuntu-10.10-server-i386.iso",
|
93
|
+
:iso_md5 => "ce1cee108de737d7492e37069eed538e",
|
94
|
+
:iso_download_timeout => "1000",
|
95
|
+
:boot_wait => "10",
|
96
|
+
:boot_cmd_sequence => [
|
97
|
+
'<Esc><Esc><Enter>',
|
98
|
+
'/install/vmlinuz noapic preseed/url=http://%IP%:%PORT%/preseed.cfg ',
|
99
|
+
'debian-installer=en_US auto locale=en_US kbd-chooser/method=us ',
|
100
|
+
'hostname=%NAME% ',
|
101
|
+
'fb=false debconf/frontend=noninteractive ',
|
102
|
+
'console-setup/ask_detect=false console-setup/modelcode=pc105 console-setup/layoutcode=us ',
|
103
|
+
'initrd=/install/initrd.gz -- <Enter>'
|
104
|
+
],
|
105
|
+
:kickstart_port => "7122", :kickstart_timeout => "10000",:kickstart_file => "preseed.cfg",
|
106
|
+
:ssh_login_timeout => "10000",:ssh_user => "vagrant", :ssh_password => "vagrant",:ssh_key => "",
|
107
|
+
:ssh_host_port => "2222", :ssh_guest_port => "22",
|
108
|
+
:sudo_cmd => "echo '%p'|sudo -S sh '%f'",
|
109
|
+
:shutdown_cmd => "shutdown -H",
|
110
|
+
:postinstall_files => [ "postinstall.sh"],:postinstall_timeout => "10000"
|
111
|
+
}
|
112
|
+
)
|
102
113
|
|
103
114
|
If you need to change values in the templates, be sure to run the rake undefine, the rake define again to copy the changes across.
|
104
115
|
|
105
116
|
## Getting the cdrom file in place
|
106
117
|
Put your isofile inside the 'currentdir'/iso directory or if you don't run
|
107
|
-
|
118
|
+
|
119
|
+
$ vagrant basebox build 'myubuntubox'
|
108
120
|
|
109
121
|
- the build assumes your iso files are in 'currentdir'/iso
|
110
122
|
- if it can not find it will suggest to download the iso for you
|
111
123
|
- use '--force' to overwrite an existing install
|
112
124
|
|
113
125
|
## Build the new box:
|
114
|
-
|
115
|
-
$ vagrant basebox build 'myubuntubox'
|
126
|
+
|
127
|
+
$ vagrant basebox build 'myubuntubox'
|
116
128
|
|
117
129
|
- This will create a machine + disk according to the definition.rb
|
118
130
|
- Note: :os_type_id = The internal Name Virtualbox uses for that Distribution
|
@@ -124,12 +136,14 @@ $ vagrant basebox build 'myubuntubox'</pre>
|
|
124
136
|
- Sudo execute the :postinstall_files
|
125
137
|
|
126
138
|
## Validate the vm
|
127
|
-
|
139
|
+
|
140
|
+
$ vagrant basebox validate 'myubuntubox'
|
128
141
|
|
129
142
|
this will run some cucumber test against the box to see if it has the necessary bits and pieces for vagrant to work
|
130
143
|
|
131
144
|
## Export the vm to a .box file
|
132
|
-
|
145
|
+
|
146
|
+
$ vagrant basebox export 'myubuntubox'
|
133
147
|
|
134
148
|
this is actually calling - vagrant package --base 'myubuntubox' --output 'boxes/myubuntubox.box'
|
135
149
|
|
@@ -138,38 +152,32 @@ this will result in a myubuntubox.box
|
|
138
152
|
## Add the box as one of your boxes
|
139
153
|
To import it into vagrant type:
|
140
154
|
|
141
|
-
|
142
|
-
|
155
|
+
$ vagrant box add 'myubuntubox' 'myubuntubox.box'
|
156
|
+
|
143
157
|
## Use it in vagrant
|
144
158
|
|
145
159
|
To use it:
|
146
|
-
|
147
|
-
$ vagrant init 'myubuntubox'
|
148
|
-
$ vagrant up
|
149
|
-
$ vagrant ssh
|
150
|
-
</pre>
|
160
|
+
|
161
|
+
$ vagrant init 'myubuntubox'
|
162
|
+
$ vagrant up
|
163
|
+
$ vagrant ssh
|
151
164
|
|
152
165
|
## How to add a new OS/installation (needs some love)
|
153
166
|
|
154
|
-
|
155
|
-
- fork of the veewee repository
|
167
|
+
I suggest the easiest way is to get an account on github and fork of the veewee repository
|
156
168
|
|
157
|
-
|
158
|
-
$
|
159
|
-
$
|
160
|
-
$
|
161
|
-
$ bundle install
|
162
|
-
</pre>
|
169
|
+
$ git clone https://github.com/*your account*/veewee.git
|
170
|
+
$ cd veewee
|
171
|
+
$ gem install bundler
|
172
|
+
$ bundle install
|
163
173
|
|
164
174
|
If you don't use rvm, be sure to execute vagrant through bundle exec
|
165
|
-
|
166
|
-
$ alias vagrant="bundle exec vagrant"
|
167
|
-
</pre>
|
175
|
+
|
176
|
+
$ alias vagrant="bundle exec vagrant"
|
168
177
|
|
169
178
|
Start of an existing one
|
170
|
-
|
171
|
-
$ vagrant basebox define 'mynewos' 'ubuntu...'
|
172
|
-
</pre>
|
179
|
+
|
180
|
+
$ vagrant basebox define 'mynewos' 'ubuntu...'
|
173
181
|
|
174
182
|
- Do changes in the currentdir/definitions/mynewos
|
175
183
|
- When it builds ok, move the definition/mynewos to a sensible directory under templates
|
data/lib/veewee/command.rb
CHANGED
@@ -70,9 +70,10 @@ class Command < Vagrant::Command::GroupBase
|
|
70
70
|
end
|
71
71
|
|
72
72
|
desc "validate [NAME]", "Validates a box against vagrant compliancy rules"
|
73
|
+
method_option :user,:default => "vagrant", :aliases => "-u", :desc => "user to login with"
|
73
74
|
def validate(boxname)
|
74
75
|
if (!boxname.nil?)
|
75
|
-
Veewee::Session.validate_box(boxname)
|
76
|
+
Veewee::Session.validate_box(boxname,options)
|
76
77
|
end
|
77
78
|
end
|
78
79
|
|
data/lib/veewee/scancode.rb
CHANGED
@@ -93,10 +93,27 @@ module Veewee
|
|
93
93
|
special['<KillX>'] = '1d 38 0e';
|
94
94
|
special['<Wait>'] = 'wait';
|
95
95
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
96
|
+
special['<Up>'] = '48 c8';
|
97
|
+
special['<Down>'] = '50 d0';
|
98
|
+
special['<PageUp>'] = '49 c9';
|
99
|
+
special['<PageDown>'] = '51 d1';
|
100
|
+
special['<End>'] = '4f cf';
|
101
|
+
special['<Insert>'] = '52 d2';
|
102
|
+
special['<Delete>'] = '53 d3';
|
103
|
+
special['<Left>'] = '4b cb';
|
104
|
+
special['<Right>'] = '4d cd';
|
105
|
+
special['<Home>'] = '47 c7';
|
106
|
+
|
107
|
+
special['<F1>'] = '3b';
|
108
|
+
special['<F2>'] = '3c';
|
109
|
+
special['<F3>'] = '3d';
|
110
|
+
special['<F4>'] = '3e';
|
111
|
+
special['<F5>'] = '3f';
|
112
|
+
special['<F6>'] = '40';
|
113
|
+
special['<F7>'] = '41';
|
114
|
+
special['<F8>'] = '42';
|
115
|
+
special['<F9>'] = '43';
|
116
|
+
special['<F10>'] = '44';
|
100
117
|
|
101
118
|
keycodes=''
|
102
119
|
thestring.gsub!(/ /,"<Spacebar>")
|
data/lib/veewee/session.rb
CHANGED
@@ -696,13 +696,13 @@ module Veewee
|
|
696
696
|
Socket.do_not_reverse_lookup = orig
|
697
697
|
end
|
698
698
|
|
699
|
-
def self.validate_box(boxname)
|
699
|
+
def self.validate_box(boxname,options)
|
700
700
|
require 'cucumber'
|
701
701
|
|
702
702
|
require 'cucumber/rspec/disable_option_parser'
|
703
703
|
require 'cucumber/cli/main'
|
704
704
|
|
705
|
-
|
705
|
+
ENV['veewee_user']=options[:user]
|
706
706
|
feature_path=File.join(File.dirname(__FILE__),"..","..","validation","vagrant.feature")
|
707
707
|
|
708
708
|
features=Array.new
|
data/lib/veewee/version.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
Veewee::Session.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://mirror.ukhost4u.com/centos/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 => "100", :ssh_user => "vagrant", :ssh_password => "vagrant", :ssh_key => "",
|
12
|
+
:ssh_host_port => "7222", :ssh_guest_port => "22",
|
13
|
+
:sudo_cmd => "echo '%p'|sudo -S sh '%f'",
|
14
|
+
:shutdown_cmd => "/sbin/halt -h -p",
|
15
|
+
:postinstall_files => [ "postinstall.sh"], :postinstall_timeout => 10000
|
16
|
+
})
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Kickstart file automatically generated by anaconda.
|
2
|
+
|
3
|
+
install
|
4
|
+
url --url=http://mirror.bytemark.co.uk/centos/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
|
+
|
41
|
+
%post
|
42
|
+
/usr/sbin/groupadd vagrant
|
43
|
+
/usr/sbin/useradd vagrant -g vagrant -G wheel
|
44
|
+
echo "vagrant"|passwd --stdin vagrant
|
45
|
+
echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#http://chrisadams.me.uk/2010/05/10/setting-up-a-centos-base-box-for-development-and-testing-with-vagrant/
|
2
|
+
|
3
|
+
fail()
|
4
|
+
{
|
5
|
+
echo "FATAL: $*"
|
6
|
+
exit 1
|
7
|
+
}
|
8
|
+
|
9
|
+
#kernel source is needed for vbox additions
|
10
|
+
yum -y install gcc bzip2 make kernel-devel-`uname -r`
|
11
|
+
#yum -y update
|
12
|
+
#yum -y upgrade
|
13
|
+
|
14
|
+
yum -y install gcc-c++ zlib-devel openssl-devel readline-devel sqlite3-devel
|
15
|
+
yum -y erase wireless-tools gtk2 libX11 hicolor-icon-theme avahi freetype bitstream-vera-fonts
|
16
|
+
yum -y clean all
|
17
|
+
|
18
|
+
#Installing ruby
|
19
|
+
cd /tmp
|
20
|
+
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p180.tar.gz || fail "Could not download Ruby source"
|
21
|
+
tar xzvf ruby-1.9.2-p180.tar.gz
|
22
|
+
cd ruby-1.9.2-p180
|
23
|
+
./configure
|
24
|
+
make && make install
|
25
|
+
cd /tmp
|
26
|
+
rm -rf /tmp/ruby-1.9.2-p180
|
27
|
+
rm /tmp/ruby-1.9.2-p180.tar.gz
|
28
|
+
ln -s /usr/local/bin/ruby /usr/bin/ruby # Create a sym link for the same path
|
29
|
+
ln -s /usr/local/bin/gem /usr/bin/gem # Create a sym link for the same path
|
30
|
+
|
31
|
+
#Installing chef & Puppet
|
32
|
+
echo "Installing chef and puppet"
|
33
|
+
/usr/local/bin/gem install chef --no-ri --no-rdoc || fail "Could not install chef"
|
34
|
+
/usr/local/bin/gem install puppet --no-ri --no-rdoc || fail "Could not install puppet"
|
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 'http://github.com/mitchellh/vagrant/raw/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
|
+
|
56
|
+
#poweroff -h
|
57
|
+
|
58
|
+
exit
|