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.
- 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
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -34,4 +34,4 @@ IDEAS:
|
|
|
34
34
|
|
|
35
35
|
[whren - 2012/04/12]
|
|
36
36
|
|
|
37
|
-
See [use of pre_postinstall_file in
|
|
37
|
+
See [use of pre_postinstall_file in definition.rb](https://github.com/whren/veewee/wiki/Use-of-pre_postinstall_file-in-definition.rb)
|
data/doc/definition.md
CHANGED
|
@@ -63,3 +63,21 @@ Add '.erb' to your files in a definition and they will get rendered (useful for
|
|
|
63
63
|
## Removing a definition
|
|
64
64
|
|
|
65
65
|
veewee vbox undefine 'myubuntu'
|
|
66
|
+
|
|
67
|
+
## Provider ``vm_options``
|
|
68
|
+
|
|
69
|
+
Each provider _can_ take options that are specific to them ; more detail will
|
|
70
|
+
be available in each provider documentation but let's have a quick overview.
|
|
71
|
+
|
|
72
|
+
Veewee::Definition.declare( {
|
|
73
|
+
:cpu_count => '1', :memory_size=> '256',
|
|
74
|
+
:disk_size => '10140', :disk_format => 'VDI', :disk_variant => 'Standard',
|
|
75
|
+
# […]
|
|
76
|
+
:postinstall_files => [ "postinstall.sh"],:postinstall_timeout => "10000"
|
|
77
|
+
:kvm => { :vm_options => ['network_type' => 'bridge', 'network_bridge_name' => 'brlxc0']}
|
|
78
|
+
:virtualbox => { :vm_options => [ 'pae' => 'on', 'ioapic' => 'one'] }
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
This box will have ``pae`` and ``ioapic`` enabled on virtualbox, and will use
|
|
83
|
+
the ``brlxc0`` bridge on with kvm (on libvirt).
|
data/doc/kvm.md
CHANGED
|
@@ -1,8 +1,35 @@
|
|
|
1
1
|
NOTE:Virtualbox doesn't like KVM to be enabled
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Prerequires
|
|
4
4
|
|
|
5
|
+
To check if you're kernel can run kvm :
|
|
6
|
+
|
|
7
|
+
# kvm_ok or kvm-ok command (on Ubuntu at least)
|
|
5
8
|
kvm_ok
|
|
9
|
+
# or look for vmx or svm in /proc/cpuinfo
|
|
10
|
+
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
|
|
11
|
+
|
|
12
|
+
The modules needed are the following : kvm, kvm_intel or kvm-amd.
|
|
13
|
+
|
|
14
|
+
## Define a new box
|
|
15
|
+
|
|
16
|
+
The workflow to create a box is almost the same as with the Virtualbox
|
|
17
|
+
provider (and others).
|
|
18
|
+
|
|
19
|
+
## Options
|
|
20
|
+
|
|
21
|
+
There is currently few options supported :
|
|
22
|
+
|
|
23
|
+
1. **network_type**: the type of network used by this box on libvirt. It could
|
|
24
|
+
be either _network_ (for using the default network) or _bridge_.
|
|
25
|
+
2. **network_bridge_name**: the name of the bridge. It is used just in case
|
|
26
|
+
**network_type** is set to _bridge_.
|
|
27
|
+
3. **pool_name**: the _storage_ pool name to be used when creating the box. If
|
|
28
|
+
not specified, the default one is used. _Note: it is currently not working
|
|
29
|
+
with the current fog version (1.7.0) but should be fixed as soon as the fog
|
|
30
|
+
gem is released_.
|
|
31
|
+
|
|
32
|
+
## Notes
|
|
6
33
|
|
|
7
34
|
Remove modules:
|
|
8
35
|
|
data/doc/template.md
CHANGED
|
@@ -14,23 +14,44 @@ To see all the templates provided:
|
|
|
14
14
|
veewee vbox define '<box_name>' 'archlinux-x86_64'
|
|
15
15
|
veewee vbox define '<box_name>' 'archlinux-x86_64-netboot'
|
|
16
16
|
veewee vbox define '<box_name>' 'CentOS-4.8-i386'
|
|
17
|
+
veewee vbox define '<box_name>' 'CentOS-5.5-i386-netboot'
|
|
17
18
|
veewee vbox define '<box_name>' 'CentOS-5.5-x86_64-netboot'
|
|
18
19
|
veewee vbox define '<box_name>' 'CentOS-5.6-i386'
|
|
19
20
|
veewee vbox define '<box_name>' 'CentOS-5.6-i386-netboot'
|
|
20
21
|
veewee vbox define '<box_name>' 'CentOS-5.6-x86_64-netboot'
|
|
22
|
+
veewee vbox define '<box_name>' 'CentOS-5.6-x86_64-netboot-packages'
|
|
21
23
|
veewee vbox define '<box_name>' 'CentOS-5.7-i386-netboot'
|
|
22
24
|
veewee vbox define '<box_name>' 'CentOS-5.7-x86_64-netboot'
|
|
25
|
+
veewee vbox define '<box_name>' 'CentOS-5.8-i386'
|
|
26
|
+
veewee vbox define '<box_name>' 'CentOS-5.8-i386-netboot'
|
|
27
|
+
veewee vbox define '<box_name>' 'CentOS-5.8-x86_64'
|
|
28
|
+
veewee vbox define '<box_name>' 'CentOS-5.8-x86_64-netboot'
|
|
23
29
|
veewee vbox define '<box_name>' 'CentOS-6.0-i386'
|
|
24
30
|
veewee vbox define '<box_name>' 'CentOS-6.0-i386-netboot'
|
|
25
31
|
veewee vbox define '<box_name>' 'CentOS-6.0-x86_64'
|
|
26
32
|
veewee vbox define '<box_name>' 'CentOS-6.0-x86_64-minimal'
|
|
27
33
|
veewee vbox define '<box_name>' 'CentOS-6.0-x86_64-netboot'
|
|
28
34
|
veewee vbox define '<box_name>' 'CentOS-6.1-x86_64-minimal'
|
|
35
|
+
veewee vbox define '<box_name>' 'CentOS-6.1-x86_64-netboot'
|
|
36
|
+
veewee vbox define '<box_name>' 'CentOS-6.2-i386-minimal'
|
|
29
37
|
veewee vbox define '<box_name>' 'CentOS-6.2-x86_64-minimal'
|
|
38
|
+
veewee vbox define '<box_name>' 'CentOS-6.2-x86_64-netboot'
|
|
39
|
+
veewee vbox define '<box_name>' 'CentOS-6.3-i386-minimal'
|
|
40
|
+
veewee vbox define '<box_name>' 'CentOS-6.3-x86_64-minimal'
|
|
30
41
|
veewee vbox define '<box_name>' 'Debian-5.0.8-amd64-netboot'
|
|
31
42
|
veewee vbox define '<box_name>' 'Debian-5.0.8-i386-netboot'
|
|
43
|
+
veewee vbox define '<box_name>' 'Debian-5.0.10-amd64-netboot'
|
|
44
|
+
veewee vbox define '<box_name>' 'Debian-5.0.10-i386-netboot'
|
|
32
45
|
veewee vbox define '<box_name>' 'Debian-6.0.3-amd64-netboot'
|
|
33
46
|
veewee vbox define '<box_name>' 'Debian-6.0.3-i386-netboot'
|
|
47
|
+
veewee vbox define '<box_name>' 'Debian-6.0.4-amd64-netboot'
|
|
48
|
+
veewee vbox define '<box_name>' 'Debian-6.0.4-i386-netboot'
|
|
49
|
+
veewee vbox define '<box_name>' 'Debian-6.0.5-amd64-netboot'
|
|
50
|
+
veewee vbox define '<box_name>' 'Debian-6.0.5-i386-netboot'
|
|
51
|
+
veewee vbox define '<box_name>' 'Debian-6.0.6-amd64-netboot'
|
|
52
|
+
veewee vbox define '<box_name>' 'Debian-6.0.6-i386-netboot'
|
|
53
|
+
veewee vbox define '<box_name>' 'Debian-7.0-b2-i386-netboot'
|
|
54
|
+
veewee vbox define '<box_name>' 'Debian-7.0-b3-amd64-netboot'
|
|
34
55
|
veewee vbox define '<box_name>' 'Fedora-14-amd64'
|
|
35
56
|
veewee vbox define '<box_name>' 'Fedora-14-amd64-netboot'
|
|
36
57
|
veewee vbox define '<box_name>' 'Fedora-14-i386'
|
|
@@ -41,10 +62,17 @@ To see all the templates provided:
|
|
|
41
62
|
veewee vbox define '<box_name>' 'Fedora-15-x86_64-netboot'
|
|
42
63
|
veewee vbox define '<box_name>' 'Fedora-16-i386'
|
|
43
64
|
veewee vbox define '<box_name>' 'Fedora-16-x86_64'
|
|
65
|
+
veewee vbox define '<box_name>' 'Fedora-16-x86_64-netboot'
|
|
66
|
+
veewee vbox define '<box_name>' 'Fedora-17-i386'
|
|
67
|
+
veewee vbox define '<box_name>' 'Fedora-17-x86_64'
|
|
68
|
+
veewee vbox define '<box_name>' 'Fedora-18-i386'
|
|
69
|
+
veewee vbox define '<box_name>' 'Fedora-18-x86_64'
|
|
44
70
|
veewee vbox define '<box_name>' 'freebsd-8.2-experimental'
|
|
45
71
|
veewee vbox define '<box_name>' 'freebsd-8.2-pcbsd-i386'
|
|
46
72
|
veewee vbox define '<box_name>' 'freebsd-8.2-pcbsd-i386-netboot'
|
|
73
|
+
veewee vbox define '<box_name>' 'freebsd-9.0-RELEASE-amd64'
|
|
47
74
|
veewee vbox define '<box_name>' 'funtoo-latest-generic_64-stable'
|
|
75
|
+
veewee vbox define '<box_name>' 'funtoo-latest-x86_64'
|
|
48
76
|
veewee vbox define '<box_name>' 'gentoo-latest-i386-experimental'
|
|
49
77
|
veewee vbox define '<box_name>' 'gentoo-latest-x86_64-experimental'
|
|
50
78
|
veewee vbox define '<box_name>' 'openbsd50_amd64'
|
|
@@ -57,8 +85,13 @@ To see all the templates provided:
|
|
|
57
85
|
veewee vbox define '<box_name>' 'openSUSE-11.4-NET-x86_64'
|
|
58
86
|
veewee vbox define '<box_name>' 'openSUSE-12.1-DVD+NET-i586'
|
|
59
87
|
veewee vbox define '<box_name>' 'openSUSE-12.1-DVD+NET-x86_64'
|
|
88
|
+
veewee vbox define '<box_name>' 'OracleLinux-6.3-x86_64-DVD'
|
|
60
89
|
veewee vbox define '<box_name>' 'scientificlinux-6.1-i386-netboot'
|
|
61
90
|
veewee vbox define '<box_name>' 'scientificlinux-6.1-x86_64-netboot'
|
|
91
|
+
veewee vbox define '<box_name>' 'scientificlinux-6.2-i386-netboot'
|
|
92
|
+
veewee vbox define '<box_name>' 'scientificlinux-6.2-x86_64-netboot'
|
|
93
|
+
veewee vbox define '<box_name>' 'scientificlinux-6.3-i386-netboot'
|
|
94
|
+
veewee vbox define '<box_name>' 'scientificlinux-6.3-x86_64-netboot'
|
|
62
95
|
veewee vbox define '<box_name>' 'SLES-11-SP1-DVD-i586-GM'
|
|
63
96
|
veewee vbox define '<box_name>' 'SLES-11-SP1-DVD-x86_64-GM'
|
|
64
97
|
veewee vbox define '<box_name>' 'solaris-11-express-i386'
|
|
@@ -68,6 +101,8 @@ To see all the templates provided:
|
|
|
68
101
|
veewee vbox define '<box_name>' 'ubuntu-10.04.3-server-amd64'
|
|
69
102
|
veewee vbox define '<box_name>' 'ubuntu-10.04.3-server-amd64-alt'
|
|
70
103
|
veewee vbox define '<box_name>' 'ubuntu-10.04.3-server-i386'
|
|
104
|
+
veewee vbox define '<box_name>' 'ubuntu-10.04.4-server-amd64'
|
|
105
|
+
veewee vbox define '<box_name>' 'ubuntu-10.04.4-server-i386'
|
|
71
106
|
veewee vbox define '<box_name>' 'ubuntu-10.10-server-amd64'
|
|
72
107
|
veewee vbox define '<box_name>' 'ubuntu-10.10-server-amd64-netboot'
|
|
73
108
|
veewee vbox define '<box_name>' 'ubuntu-10.10-server-i386'
|
|
@@ -77,19 +112,35 @@ To see all the templates provided:
|
|
|
77
112
|
veewee vbox define '<box_name>' 'ubuntu-11.10-server-amd64'
|
|
78
113
|
veewee vbox define '<box_name>' 'ubuntu-11.10-server-amd64-ishaya'
|
|
79
114
|
veewee vbox define '<box_name>' 'ubuntu-11.10-server-amd64-ruby192'
|
|
115
|
+
veewee vbox define '<box_name>' 'ubuntu-11.10-server-amd64-rvm'
|
|
80
116
|
veewee vbox define '<box_name>' 'ubuntu-11.10-server-i386'
|
|
117
|
+
veewee vbox define '<box_name>' 'ubuntu-12.04.1-server-amd64'
|
|
118
|
+
veewee vbox define '<box_name>' 'ubuntu-12.04.1-server-amd64-packages'
|
|
119
|
+
veewee vbox define '<box_name>' 'ubuntu-12.04.1-server-i386'
|
|
120
|
+
veewee vbox define '<box_name>' 'ubuntu-12.04.1-server-i386-packages'
|
|
121
|
+
veewee vbox define '<box_name>' 'ubuntu-12.10-server-amd64'
|
|
122
|
+
veewee vbox define '<box_name>' 'ubuntu-12.10-server-amd64-packages'
|
|
123
|
+
veewee vbox define '<box_name>' 'ubuntu-12.10-server-i386'
|
|
124
|
+
veewee vbox define '<box_name>' 'ubuntu-12.10-server-i386-packages'
|
|
81
125
|
veewee vbox define '<box_name>' 'ubuntu-8.04.4-server-amd64'
|
|
82
126
|
veewee vbox define '<box_name>' 'ubuntu-8.04.4-server-i386'
|
|
83
127
|
veewee vbox define '<box_name>' 'windows-2008R1-serverstandard-amd64'
|
|
128
|
+
veewee vbox define '<box_name>' 'windows-2008R1-serverweb-amd64'
|
|
129
|
+
veewee vbox define '<box_name>' 'windows-2008R1-serverwebcore-amd64'
|
|
130
|
+
veewee vbox define '<box_name>' 'windows-2008R1-serverweb-i386'
|
|
84
131
|
veewee vbox define '<box_name>' 'windows-2008R2-amd64'
|
|
85
132
|
veewee vbox define '<box_name>' 'windows-2008R2-serverstandard-amd64'
|
|
133
|
+
veewee vbox define '<box_name>' 'windows-2008R2-serverstandard-amd64-winrm'
|
|
134
|
+
veewee vbox define '<box_name>' 'windows-2008R2-serverweb-amd64'
|
|
135
|
+
veewee vbox define '<box_name>' 'windows-2008R2-serverwebcore-amd64'
|
|
86
136
|
veewee vbox define '<box_name>' 'windows-7-enterprise-amd64'
|
|
137
|
+
veewee vbox define '<box_name>' 'windows-7-enterprise-amd64-winrm'
|
|
87
138
|
veewee vbox define '<box_name>' 'windows-7-enterprise-i386'
|
|
88
139
|
veewee vbox define '<box_name>' 'windows-7-premium-amd64'
|
|
89
140
|
veewee vbox define '<box_name>' 'windows-7-professional-amd64'
|
|
90
|
-
veewee vbox define '<box_name>' 'windows-7-ultimate-amd64'
|
|
91
141
|
veewee vbox define '<box_name>' 'windows-7sp1-ultimate-amd64'
|
|
92
|
-
veewee vbox define '<box_name>' 'windows-
|
|
142
|
+
veewee vbox define '<box_name>' 'windows-7-ultimate-amd64'
|
|
143
|
+
veewee vbox define '<box_name>' 'windows-8-preview-amd64'
|
|
93
144
|
|
|
94
145
|
|
|
95
146
|
## Structure
|
|
@@ -1,5 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
module Veewee
|
|
2
4
|
module Command
|
|
5
|
+
class Fusion < Veewee::Command::GroupBase
|
|
6
|
+
register "add_share", "Adds a Share to the Guest"
|
|
7
|
+
desc "add_share [BOX_NAME] [SHARE_NAME] [SHARE_PATH]", "hello"
|
|
8
|
+
def add_share(box_name, share_name, share_path)
|
|
9
|
+
venv=Veewee::Environment.new(options)
|
|
10
|
+
venv.ui=env.ui
|
|
11
|
+
# command="#{File.dirname().shellescape}/vmware-vdiskmanager -c -s #{definition.disk_size}M -a lsilogic -t #{disk_type} #{name}.vmdk"
|
|
12
|
+
# shell_results=shell_exec("#{command}",{:mute => true})
|
|
13
|
+
venv.providers["vmfusion"].get_box(box_name).add_share(share_name, share_path)
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
3
18
|
class Fusion< Veewee::Command::GroupBase
|
|
4
19
|
|
|
5
20
|
register "fusion", "Subcommand for Vmware fusion"
|
|
@@ -16,7 +31,7 @@ module Veewee
|
|
|
16
31
|
venv.providers["vmfusion"].get_box(box_name).build(options)
|
|
17
32
|
end
|
|
18
33
|
|
|
19
|
-
method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "force the destroy"
|
|
34
|
+
method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "force the destroy"
|
|
20
35
|
method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging"
|
|
21
36
|
method_option :nogui,:type => :boolean , :default => false, :aliases => "-n", :desc => "no gui"
|
|
22
37
|
desc "destroy [BOXNAME]", "Destroys the virtualmachine that was built"
|
|
@@ -27,7 +42,7 @@ module Veewee
|
|
|
27
42
|
end
|
|
28
43
|
|
|
29
44
|
method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging"
|
|
30
|
-
method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "force the shutdown"
|
|
45
|
+
method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "force the shutdown"
|
|
31
46
|
desc "halt [BOXNAME]", "Activates a shutdown the virtualmachine"
|
|
32
47
|
def halt(box_name)
|
|
33
48
|
venv=Veewee::Environment.new(options)
|
|
@@ -52,6 +67,25 @@ module Veewee
|
|
|
52
67
|
venv.providers["vmfusion"].get_box(box_name).issh(command)
|
|
53
68
|
end
|
|
54
69
|
|
|
70
|
+
|
|
71
|
+
desc "winrm [BOXNAME] [COMMAND]", "Execute command via winrm"
|
|
72
|
+
method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging"
|
|
73
|
+
def winrm(box_name,command=nil)
|
|
74
|
+
venv=Veewee::Environment.new(options)
|
|
75
|
+
venv.ui=env.ui
|
|
76
|
+
venv.providers["vmfusion"].get_box(box_name).winrm(command,{:exitcode => "*"})
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
desc "copy [BOXNAME] [SRC] [DST]", "Copy a file to the VM"
|
|
80
|
+
method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging"
|
|
81
|
+
def copy(box_name,src,dst)
|
|
82
|
+
venv=Veewee::Environment.new(options)
|
|
83
|
+
venv.ui=env.ui
|
|
84
|
+
venv.providers["vmfusion"].get_box(box_name).copy_to_box(src,dst)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
55
89
|
desc "define [BOXNAME] [TEMPLATE]", "Define a new basebox starting from a template"
|
|
56
90
|
method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "overwrite the definition"
|
|
57
91
|
method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging"
|
|
@@ -94,7 +128,7 @@ module Veewee
|
|
|
94
128
|
venv=Veewee::Environment.new(options)
|
|
95
129
|
venv.ui=env.ui
|
|
96
130
|
venv.ostypes.each do |name|
|
|
97
|
-
|
|
131
|
+
env.ui.info "- #{name}"
|
|
98
132
|
end
|
|
99
133
|
end
|
|
100
134
|
|
|
@@ -8,6 +8,7 @@ require 'veewee/command/vagrant/destroy'
|
|
|
8
8
|
require 'veewee/command/vagrant/up'
|
|
9
9
|
require 'veewee/command/vagrant/halt'
|
|
10
10
|
require 'veewee/command/vagrant/ssh'
|
|
11
|
+
require 'veewee/command/vagrant/winrm'
|
|
11
12
|
require 'veewee/command/vagrant/define'
|
|
12
13
|
require 'veewee/command/vagrant/undefine'
|
|
13
14
|
require 'veewee/command/vagrant/validate'
|
|
@@ -33,6 +34,7 @@ module Veewee
|
|
|
33
34
|
@subcommands.register(:up) { Veewee::Command::Vagrant::Up }
|
|
34
35
|
@subcommands.register(:halt) { Veewee::Command::Vagrant::Halt }
|
|
35
36
|
@subcommands.register(:ssh) { Veewee::Command::Vagrant::Ssh }
|
|
37
|
+
@subcommands.register(:winrm) { Veewee::Command::Vagrant::Winrm }
|
|
36
38
|
@subcommands.register(:define) { Veewee::Command::Vagrant::Define }
|
|
37
39
|
@subcommands.register(:undefine) { Veewee::Command::Vagrant::Undefine }
|
|
38
40
|
@subcommands.register(:export) { Veewee::Command::Vagrant::Export }
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'optparse'
|
|
2
|
+
|
|
3
|
+
module Veewee
|
|
4
|
+
module Command
|
|
5
|
+
module Vagrant
|
|
6
|
+
class Winrm < ::Vagrant::Command::Base
|
|
7
|
+
def execute
|
|
8
|
+
options = {}
|
|
9
|
+
|
|
10
|
+
opts = OptionParser.new do |opts|
|
|
11
|
+
opts.banner = "Winrm into the basebox"
|
|
12
|
+
opts.separator ""
|
|
13
|
+
opts.separator "Usage: vagrant basebox winrm <boxname> <command>"
|
|
14
|
+
|
|
15
|
+
opts.on("-d", "--debug", "enable debugging") do |d|
|
|
16
|
+
options['debug'] = d
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Parse the options
|
|
22
|
+
argv = parse_options(opts)
|
|
23
|
+
return if !argv
|
|
24
|
+
raise ::Vagrant::Errors::CLIInvalidUsage, :help => opts.help.chomp if argv.length < 1
|
|
25
|
+
|
|
26
|
+
begin
|
|
27
|
+
venv=Veewee::Environment.new(options)
|
|
28
|
+
venv.ui=@env.ui
|
|
29
|
+
venv.providers["virtualbox"].get_box(argv[0]).winrm(argv[1])
|
|
30
|
+
rescue Veewee::Error => ex
|
|
31
|
+
venv.ui.error ex
|
|
32
|
+
exit -1
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
data/lib/veewee/command/vbox.rb
CHANGED
|
@@ -53,6 +53,24 @@ module Veewee
|
|
|
53
53
|
venv.providers["virtualbox"].get_box(box_name).issh(command)
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
+
|
|
57
|
+
desc "winrm [BOXNAME] [COMMAND]", "Execute command via winrm"
|
|
58
|
+
method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging"
|
|
59
|
+
def winrm(box_name,command=nil)
|
|
60
|
+
venv=Veewee::Environment.new(options)
|
|
61
|
+
venv.ui=env.ui
|
|
62
|
+
venv.providers["virtualbox"].get_box(box_name).winrm(command,{:exitcode => "*"})
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
desc "copy [BOXNAME] [SRC] [DST]", "Copy a file to the VM"
|
|
66
|
+
method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging"
|
|
67
|
+
def copy(box_name,src,dst)
|
|
68
|
+
venv=Veewee::Environment.new(options)
|
|
69
|
+
venv.ui=env.ui
|
|
70
|
+
venv.providers["virtualbox"].get_box(box_name).copy_to_box(src,dst)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
|
|
56
74
|
desc "define [BOXNAME] [TEMPLATE]", "Define a new basebox starting from a template"
|
|
57
75
|
method_option :force,:type => :boolean , :default => false, :aliases => "-f", :desc => "overwrite the definition"
|
|
58
76
|
method_option :debug,:type => :boolean , :default => false, :aliases => "-d", :desc => "enable debugging"
|
data/lib/veewee/definition.rb
CHANGED
|
@@ -21,6 +21,8 @@ module Veewee
|
|
|
21
21
|
|
|
22
22
|
attr_accessor :ssh_login_timeout, :ssh_user , :ssh_password, :ssh_key, :ssh_host_port, :ssh_guest_port
|
|
23
23
|
|
|
24
|
+
attr_accessor :winrm_login_timeout, :winrm_user , :winrm_password, :winrm_host_port, :winrm_guest_port
|
|
25
|
+
|
|
24
26
|
attr_accessor :sudo_cmd
|
|
25
27
|
attr_accessor :shutdown_cmd
|
|
26
28
|
|
|
@@ -31,14 +33,15 @@ module Veewee
|
|
|
31
33
|
attr_accessor :floppy_files
|
|
32
34
|
|
|
33
35
|
|
|
34
|
-
attr_accessor :use_hw_virt_ext,:use_pae,:hostiocache
|
|
36
|
+
attr_accessor :use_hw_virt_ext,:use_pae,:hostiocache, :use_sata
|
|
35
37
|
|
|
36
38
|
attr_accessor :iso_dowload_timeout, :iso_src,:iso_md5 ,:iso_download_instructions
|
|
37
39
|
|
|
38
40
|
attr_accessor :virtualbox
|
|
39
41
|
attr_accessor :vmfusion
|
|
40
42
|
attr_accessor :kvm
|
|
41
|
-
|
|
43
|
+
attr_accessor :add_shares
|
|
44
|
+
attr_accessor :vmdk_file
|
|
42
45
|
|
|
43
46
|
def ui
|
|
44
47
|
return @_ui if defined?(@_ui)
|
|
@@ -64,6 +67,9 @@ module Veewee
|
|
|
64
67
|
# Default there is no ISO file mounted
|
|
65
68
|
@iso_file = nil, @iso_src = nil ; @iso_md5 = nil ; @iso_download_timeout=1000 ; @iso_download_instructions = nil
|
|
66
69
|
|
|
70
|
+
# Shares to add
|
|
71
|
+
@add_shares = []
|
|
72
|
+
|
|
67
73
|
# Default is no floppy mounted
|
|
68
74
|
@floppy_files = nil
|
|
69
75
|
|
|
@@ -73,6 +79,7 @@ module Veewee
|
|
|
73
79
|
|
|
74
80
|
@iso_file=""
|
|
75
81
|
@disk_size = '10240'; @disk_format = 'VDI'; @disk_variant = 'Standard'
|
|
82
|
+
@use_sata = true
|
|
76
83
|
|
|
77
84
|
# :hostiocache => 'off' ,
|
|
78
85
|
# :os_type_id => 'Ubuntu',
|
|
@@ -83,6 +90,9 @@ module Veewee
|
|
|
83
90
|
# :ssh_host_port => "2222", :ssh_guest_port => "22", :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
|
|
84
91
|
# :shutdown_cmd => "shutdown -h now",
|
|
85
92
|
# :kickstart_file => nil,
|
|
93
|
+
@winrm_host_port = "5985"; @winrm_guest_port = "5985"
|
|
94
|
+
@winrm_login_timeout = "10000"
|
|
95
|
+
@boot_cmd_sequence = [] # Empty list by default
|
|
86
96
|
|
|
87
97
|
@virtualbox={:vm_options => {}}
|
|
88
98
|
@vmfusion={:vm_options => {}}
|
|
@@ -171,7 +181,7 @@ module Veewee
|
|
|
171
181
|
|
|
172
182
|
# Postinstall files require a valid user and password
|
|
173
183
|
unless self.postinstall_files.nil?
|
|
174
|
-
if self.ssh_user.nil? || self.ssh_password.nil?
|
|
184
|
+
if (self.ssh_user.nil? || self.ssh_password.nil?) && (self.winrm_user.nil? || self.winrm_password.nil?)
|
|
175
185
|
return false
|
|
176
186
|
end
|
|
177
187
|
end
|
data/lib/veewee/error.rb
CHANGED
|
@@ -3,15 +3,20 @@ require 'veewee/provider/core/helper/ssh'
|
|
|
3
3
|
require 'veewee/provider/core/helper/web'
|
|
4
4
|
require 'veewee/provider/core/helper/shell'
|
|
5
5
|
require 'veewee/provider/core/helper/iso'
|
|
6
|
+
require 'veewee/provider/core/helper/winrm'
|
|
7
|
+
require 'veewee/provider/core/helper/comm'
|
|
6
8
|
|
|
7
9
|
require 'veewee/provider/core/box/build'
|
|
8
10
|
require 'veewee/provider/core/box/scp'
|
|
11
|
+
require 'veewee/provider/core/box/wincp'
|
|
12
|
+
require 'veewee/provider/core/box/copy'
|
|
9
13
|
require 'veewee/provider/core/box/exec'
|
|
10
14
|
require 'veewee/provider/core/box/poweroff'
|
|
11
15
|
require 'veewee/provider/core/box/halt'
|
|
12
16
|
require 'veewee/provider/core/box/sudo'
|
|
13
17
|
require 'veewee/provider/core/box/ssh'
|
|
14
18
|
require 'veewee/provider/core/box/issh'
|
|
19
|
+
require 'veewee/provider/core/box/winrm'
|
|
15
20
|
require 'veewee/provider/core/box/floppy'
|
|
16
21
|
require 'veewee/provider/core/box/validate_tags'
|
|
17
22
|
|
|
@@ -28,6 +33,8 @@ module Veewee
|
|
|
28
33
|
include ::Veewee::Provider::Core::Helper::Web
|
|
29
34
|
include ::Veewee::Provider::Core::Helper::Shell
|
|
30
35
|
include ::Veewee::Provider::Core::Helper::Ssh
|
|
36
|
+
include ::Veewee::Provider::Core::Helper::Winrm
|
|
37
|
+
include ::Veewee::Provider::Core::Helper::Comm
|
|
31
38
|
include ::Veewee::Provider::Core::Helper::Iso
|
|
32
39
|
|
|
33
40
|
include ::Veewee::Provider::Core::BoxCommand
|