knife-vcloud 0.2.3 → 1.0.0
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +44 -1
- data/README.md +356 -91
- data/lib/chef/knife/{vc_catalog_item_show.rb → catalog/vc_catalog_item_show.rb} +13 -13
- data/lib/chef/knife/{vc_catalog_show.rb → catalog/vc_catalog_show.rb} +9 -12
- data/lib/chef/knife/common/vc_bootstrap_common.rb +208 -0
- data/lib/chef/knife/common/vc_catalog_common.rb +58 -0
- data/lib/chef/knife/common/vc_common.rb +165 -0
- data/lib/chef/knife/common/vc_network_common.rb +34 -0
- data/lib/chef/knife/common/vc_vapp_common.rb +49 -0
- data/lib/chef/knife/common/vc_vdc_common.rb +43 -0
- data/lib/chef/knife/common/vc_vm_common.rb +80 -0
- data/lib/chef/knife/network/vc_network_show.rb +45 -0
- data/lib/chef/knife/{vc_org_list.rb → org/vc_org_list.rb} +3 -5
- data/lib/chef/knife/{vc_org_show.rb → org/vc_org_show.rb} +10 -11
- data/lib/chef/knife/ovf/vc_ovf_upload.rb +71 -0
- data/lib/chef/knife/vapp/vc_vapp_bootstrap.rb +51 -0
- data/lib/chef/knife/vapp/vc_vapp_clone.rb +80 -0
- data/lib/chef/knife/{vc_vapp_create.rb → vapp/vc_vapp_create.rb} +10 -9
- data/lib/chef/knife/{vc_vapp_delete.rb → vapp/vc_vapp_delete.rb} +12 -10
- data/lib/chef/knife/vapp/vc_vapp_network_external.rb +101 -0
- data/lib/chef/knife/vapp/vc_vapp_network_internal.rb +151 -0
- data/lib/chef/knife/vapp/vc_vapp_reboot.rb +45 -0
- data/lib/chef/knife/vapp/vc_vapp_reset.rb +44 -0
- data/lib/chef/knife/vapp/vc_vapp_show.rb +90 -0
- data/lib/chef/knife/vapp/vc_vapp_snapshot.rb +58 -0
- data/lib/chef/knife/{vc_vapp_start.rb → vapp/vc_vapp_start.rb} +7 -7
- data/lib/chef/knife/{vc_vapp_stop.rb → vapp/vc_vapp_stop.rb} +7 -7
- data/lib/chef/knife/vapp/vc_vapp_suspend.rb +44 -0
- data/lib/chef/knife/vc_commands.rb +70 -0
- data/lib/chef/knife/vc_login.rb +2 -2
- data/lib/chef/knife/{vc_vdc_show.rb → vdc/vc_vdc_show.rb} +13 -14
- data/lib/chef/knife/vm/vc_vm_bootstrap.rb +48 -0
- data/lib/chef/knife/vm/vc_vm_config_guest.rb +110 -0
- data/lib/chef/knife/{vc_vm_config_network.rb → vm/vc_vm_config_network.rb} +17 -11
- data/lib/chef/knife/vm/vc_vm_reboot.rb +44 -0
- data/lib/chef/knife/vm/vc_vm_reset.rb +44 -0
- data/lib/chef/knife/vm/vc_vm_set_disks.rb +78 -0
- data/lib/chef/knife/vm/vc_vm_set_info.rb +79 -0
- data/lib/chef/knife/{vc_vm_show.rb → vm/vc_vm_show.rb} +35 -18
- data/lib/chef/knife/vm/vc_vm_start.rb +44 -0
- data/lib/chef/knife/vm/vc_vm_stop.rb +44 -0
- data/lib/chef/knife/vm/vc_vm_suspend.rb +44 -0
- data/lib/knife-vcloud/version.rb +3 -0
- metadata +69 -38
- data/lib/chef/knife/vc_common.rb +0 -103
- data/lib/chef/knife/vc_vapp_config_network.rb +0 -63
- data/lib/chef/knife/vc_vapp_show.rb +0 -59
- data/lib/chef/knife/vc_vm_config_guest.rb +0 -67
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cd99b0e22773c4e32b18849f23e04232c29f1119
|
4
|
+
data.tar.gz: 7402cb3ab4a9d15f835936fc253c9bd4bf80c3eb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cfa1352af5c09e4555d92aee07d88ea50d7ac3ce1503aea51a17982488d4d4f24ea10612c9a6d62ba658951a12b2eb759f101bcc1d77b9c2a9ca7c7362ed4dbe
|
7
|
+
data.tar.gz: 0b2caca9edfcfbd9832654868a16ff00d3c16d6bae8351dbde26aa8f81b927c1276c5d81758becab3c6f112718cf20691d55429f6c6ef82726d3215d8eb64f81
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,48 @@
|
|
1
1
|
Changes
|
2
2
|
==
|
3
|
+
2013-11-29 (1.0.0)
|
4
|
+
--
|
5
|
+
|
6
|
+
This is the first release that leaves beta status.
|
7
|
+
It's actively used in production by at least one company and thus it's important
|
8
|
+
to offer a more stable interface.
|
9
|
+
|
10
|
+
This version requires vcloud-rest v. 1.0.0.
|
11
|
+
|
12
|
+
FEATURES:
|
13
|
+
|
14
|
+
* vApp management
|
15
|
+
* Add commands to resume/suspend/reset vApps
|
16
|
+
* Add command to clone an existing vApp
|
17
|
+
* Show network details in vapp show
|
18
|
+
* Split commands to manage internal and external vApp networks
|
19
|
+
* Add command to create/revert a vApp snapshot
|
20
|
+
* VM management
|
21
|
+
* Add commands to manage VM's status (start/stop/delete/reset/suspend/reboot)
|
22
|
+
* Show CPU/RAM/Disks info for VMs
|
23
|
+
* Add command to set VM's info (Name, CPUs & RAM)
|
24
|
+
* Add command to manage VM's disks (add, delete, resize)
|
25
|
+
* Add support for customization scripts
|
26
|
+
* Guest customization: ensure VM is stopped or stop it
|
27
|
+
* Add command to bootstrap single VMs
|
28
|
+
* Add command to bootstrap every VM of a vApp
|
29
|
+
* CLI revisited
|
30
|
+
* Almost every command accepts names in addition to IDs
|
31
|
+
* Various
|
32
|
+
* Add command to show details about a given network
|
33
|
+
* Add command to upload OVF
|
34
|
+
|
35
|
+
CHANGES:
|
36
|
+
|
37
|
+
* Renamed & enhanced command _vapp config network_ to _vapp network external_
|
38
|
+
* Several options have been revisited (see README.md for details)
|
39
|
+
* Sort VDC, Networks, vApps, Catalogs and Catalog Items by name
|
40
|
+
|
3
41
|
2012-12-28 (0.2.3)
|
4
42
|
--
|
5
43
|
|
6
44
|
VARIOUS:
|
45
|
+
|
7
46
|
* Update dependency vcloud-rest v. 0.2.1
|
8
47
|
* Update documentation
|
9
48
|
|
@@ -14,6 +53,7 @@ FIXES:
|
|
14
53
|
--
|
15
54
|
|
16
55
|
FIXES:
|
56
|
+
|
17
57
|
* VM Network config: use command line arguments
|
18
58
|
* Properly use boolean options
|
19
59
|
* Minor fixes
|
@@ -22,17 +62,20 @@ FIXES:
|
|
22
62
|
--
|
23
63
|
|
24
64
|
FIXES:
|
65
|
+
|
25
66
|
* Change namespace to fix import error under 1.9.x (system-wide)
|
26
67
|
|
27
68
|
2012-12-24 (0.2.0)
|
28
69
|
--
|
29
70
|
|
30
71
|
FEATURES:
|
72
|
+
|
31
73
|
* Add command for basic VM Guest Customization configuration
|
32
74
|
* Add command for basic VM Network configuration
|
33
75
|
* Add command for basic vApp Network configuration
|
34
76
|
|
35
|
-
|
77
|
+
CHANGES:
|
78
|
+
|
36
79
|
* Renamed _Common#msg_ to _Common#out\_msg_
|
37
80
|
|
38
81
|
2012-12-21 (0.1.0)
|
data/README.md
CHANGED
@@ -3,11 +3,9 @@ knife-vcloud [ to communicate with a
|
9
|
-
|
10
|
-
This code is BETA QUALITY.
|
8
|
+
It uses [vcloud-rest](https://github.com/astratto/vcloud-rest) to communicate with a VMware vCloud Director instance.
|
11
9
|
|
12
10
|
INSTALLATION
|
13
11
|
--
|
@@ -25,60 +23,126 @@ FEATURES
|
|
25
23
|
- show VDCs
|
26
24
|
- show Catalogs
|
27
25
|
- show Catalog Items
|
28
|
-
- create/start/stop/delete/show vApps
|
29
|
-
-
|
30
|
-
- basic vApp network configuration
|
26
|
+
- create/start/stop/delete/show/reset/suspend/reboot vApps and VMs
|
27
|
+
- add/edit/delete vApp networks (both internal and external)
|
31
28
|
- basic VM network configuration
|
32
29
|
- basic VM Guest Customization configuration
|
30
|
+
- OVF upload
|
33
31
|
|
34
32
|
PREREQUISITES
|
35
33
|
--
|
36
34
|
- chef >= 0.10.0
|
37
35
|
- knife-windows
|
38
|
-
- vcloud-rest
|
36
|
+
- vcloud-rest ~> 1.0.0
|
39
37
|
|
40
38
|
USAGE
|
41
39
|
--
|
42
40
|
|
43
41
|
###Available commands
|
44
42
|
|
45
|
-
knife vc catalog item show [
|
46
|
-
knife vc catalog show [
|
43
|
+
knife vc catalog item show [CATALOG_ITEM] (options)
|
44
|
+
knife vc catalog show [CATALOG] (options)
|
47
45
|
knife vc login (options)
|
46
|
+
knife vc network show [network] (options)
|
48
47
|
knife vc org list (options)
|
49
|
-
knife vc org show
|
50
|
-
knife vc
|
51
|
-
knife vc vapp
|
52
|
-
knife vc vapp
|
53
|
-
knife vc vapp
|
54
|
-
knife vc vapp
|
55
|
-
knife vc vapp
|
56
|
-
knife vc
|
57
|
-
knife vc
|
58
|
-
knife vc
|
59
|
-
knife vc
|
48
|
+
knife vc org show (options)
|
49
|
+
knife vc ovf upload VDC CATALOG VAPP_NAME VAPP_DESCRIPTION OVF_FILENAME (options)
|
50
|
+
knife vc vapp bootstrap [VAPP] (options)
|
51
|
+
knife vc vapp clone [VDC] [SOURCE_VAPP] [DEST_NAME] (options)
|
52
|
+
knife vc vapp create [VDC] [NAME] [DESCRIPTION] [TEMPLATE_ID] (options)
|
53
|
+
knife vc vapp delete [VAPP] (options)
|
54
|
+
knife vc vapp network external [add|delete|edit| [VAPP] [NETWORK] (options)
|
55
|
+
knife vc vapp network internal [add|delete|edit| [VAPP] [NETWORK] (options)
|
56
|
+
knife vc vapp reboot [VAPP] (options)
|
57
|
+
knife vc vapp reset [VAPP] (options)
|
58
|
+
knife vc vapp show VAPP (options)
|
59
|
+
knife vc vapp snapshot [create|revert] [VAPP] (options)
|
60
|
+
knife vc vapp start [VAPP] (options)
|
61
|
+
knife vc vapp stop [VAPP] (options)
|
62
|
+
knife vc vapp suspend [VAPP] (options)
|
63
|
+
knife vc vdc show VDC (options)
|
64
|
+
knife vc vm bootstrap [VM] (options)
|
65
|
+
knife vc vm config guest [VM] (options)
|
66
|
+
knife vc vm config network [VM] [NETWORK_NAME] (options)
|
67
|
+
knife vc vm reboot [VM] (options)
|
68
|
+
knife vc vm reset [VM] (options)
|
69
|
+
knife vc vm set disks [VM] (options)
|
70
|
+
knife vc vm set info [VM] (options)
|
71
|
+
knife vc vm show VM (options)
|
72
|
+
knife vc vm start [VM] (options)
|
73
|
+
knife vc vm stop [VM] (options)
|
74
|
+
knife vc vm suspend [VM] (options)
|
60
75
|
|
61
76
|
###Configuration
|
62
|
-
All commands accept the following options:
|
63
77
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
78
|
+
Configuration options can be set either via arguments or inside the *.chef/knife.rb* file.
|
79
|
+
The only difference is that in *knife.rb* dashes must be converted to underscores
|
80
|
+
and *vcloud_* must be prepended.
|
81
|
+
|
82
|
+
E.g., ```$ ... --org-login XXX``` becomes ```knife[:vcloud_org_login] = 'XXX'``` in *knife.rb*.
|
83
|
+
|
84
|
+
|
85
|
+
#### Common options
|
86
|
+
|
87
|
+
The following options specify, respectively, the url of the vCloud instance and the API version
|
88
|
+
to use:
|
89
|
+
|
90
|
+
--url URL
|
91
|
+
--api-version API_VERSION
|
69
92
|
|
70
|
-
|
93
|
+
#### Login Configuration
|
71
94
|
|
72
|
-
|
95
|
+
The following options specify user's credentials and thus are accepted by every command:
|
96
|
+
|
97
|
+
--user-login USER
|
98
|
+
--password-login SECRET
|
99
|
+
--org-login ORGANIZATION
|
100
|
+
|
101
|
+
**Knife.rb configuration example:**
|
73
102
|
|
74
103
|
knife[:vcloud_url] = 'https://vcloud.server.org'
|
75
|
-
knife[:
|
76
|
-
knife[:
|
77
|
-
knife[:
|
104
|
+
knife[:vcloud_org_login] = 'vcloud_organization'
|
105
|
+
knife[:vcloud_user_login] = 'vcloud_user'
|
106
|
+
knife[:vcloud_password_login] = 'vcloud_password'
|
78
107
|
(OPTIONAL) knife[:vcloud_api_version] = '1.5'
|
79
108
|
|
109
|
+
####IDs and names
|
110
|
+
Most commands accept both names and IDs.
|
111
|
+
For searches based on names, in general, at least _--vdc_ must be specified.
|
112
|
+
|
113
|
+
The examples in this document try to use names whenever is possible.
|
114
|
+
Keep in mind that ID-based search is still in place but will be dropped in future releases.
|
115
|
+
|
116
|
+
_Example:_
|
117
|
+
|
118
|
+
$ knife vc vapp delete a3f81395-4eda-43b0-8677-b2d597014979
|
119
|
+
Note: --vdc not specified, assuming VAPP is an ID
|
120
|
+
Do you really want to DELETE vApp TestAppN (ID: a3f81395-4eda-43b0-8677-b2d597014979)? (Y/N) Y
|
121
|
+
...
|
122
|
+
|
123
|
+
**TIP:**
|
124
|
+
Default --vdc and --vapp can be set in _knife.rb_.
|
125
|
+
For the sake of simplicity, the following examples assume that --vdc
|
126
|
+
is configured in _knife.rb_.
|
127
|
+
|
128
|
+
_Example:_
|
129
|
+
|
130
|
+
...
|
131
|
+
knife[:vcloud_vdc] = "vDC_Test"
|
132
|
+
knife[:vcloud_vapp] = "Test"
|
133
|
+
...
|
134
|
+
|
135
|
+
#### Browse multiple organizations
|
136
|
+
|
137
|
+
Using a vCloud System Administrator account is possible to browse several organizations and thus *--org* can be used to specify different organizations.
|
138
|
+
|
139
|
+
Only *--org-login* is valid for other users.
|
140
|
+
If *--org* is used by those users, a warning is shown:
|
141
|
+
|
142
|
+
WARNING: --org option is available only for vCloud System Administrators. Using --org-login ('test')
|
143
|
+
|
80
144
|
###Login
|
81
|
-
This command can be used to verify that
|
145
|
+
This command can be used to verify that vCloud Director can be reached and credentials are correct.
|
82
146
|
|
83
147
|
_Example:_
|
84
148
|
|
@@ -99,7 +163,7 @@ This command shows details about a given organization.
|
|
99
163
|
|
100
164
|
_Example:_
|
101
165
|
|
102
|
-
$ knife vc org show
|
166
|
+
$ knife vc org show TEST-ORG
|
103
167
|
CATALOGS
|
104
168
|
Name ID
|
105
169
|
Catalog_1 7414bc46-44fc-44ed-9844-0aa6ea9f5cf9
|
@@ -123,7 +187,7 @@ This command shows details about a given catalog.
|
|
123
187
|
|
124
188
|
_Example:_
|
125
189
|
|
126
|
-
$ knife vc catalog show
|
190
|
+
$ knife vc catalog show Catalog_1
|
127
191
|
Description: Test Catalog description
|
128
192
|
Name ID
|
129
193
|
CentOS 6.3 40e5e071-8231-46c1-92b7-fbe8f633e259
|
@@ -135,7 +199,7 @@ e.g., retrieve a template ID
|
|
135
199
|
|
136
200
|
_Example:_
|
137
201
|
|
138
|
-
$ knife vc catalog item show
|
202
|
+
$ knife vc catalog item show CentOS 6.3 --catalog Catalog_1
|
139
203
|
Description: Linux CentOS 64 bit 6 update 3
|
140
204
|
Name Template ID
|
141
205
|
CentOS 6.3 edb5bb2f-58bc-4a44-aaf6-c244543e4a1b
|
@@ -145,49 +209,33 @@ This command shows details about a given vDC.
|
|
145
209
|
|
146
210
|
_Example:_
|
147
211
|
|
148
|
-
$ knife vc vdc show
|
212
|
+
$ knife vc vdc show Test_vDC_1
|
149
213
|
Description:
|
150
214
|
vAPPS
|
151
215
|
Name ID Status IP
|
152
216
|
TestKnife (1 VMs) 09551b42-dca9-474d-aa50-201b223522db running 10.102.46.237
|
153
217
|
TestCENTOS (1 VMs) 4338a436-19fc-47b9-aaba-024841acfd66 stopped 10.102.46.23
|
154
218
|
|
155
|
-
###
|
156
|
-
|
219
|
+
###Manage vApp/VM status
|
220
|
+
vApp/VM's status can be managed with _start/stop/reboot/reset/suspend/delete_
|
157
221
|
|
158
|
-
|
159
|
-
|
160
|
-
$ knife vc vapp start 4338a436-19fc-47b9-aaba-024841acfd66
|
161
|
-
vApp startup...Done!
|
162
|
-
Summary: Status: success - started at 2012-12-19T16:50:31.030+01:00 and ended at 2012-12-19T16:50:38.487+01:00
|
163
|
-
|
164
|
-
###Shutdown vApp
|
165
|
-
This command halts a given vApp.
|
222
|
+
Note: use _knife vc vm..._ to operate on VMs.
|
166
223
|
|
167
224
|
_Example:_
|
168
225
|
|
169
|
-
$ knife vc vapp
|
170
|
-
vApp
|
171
|
-
Summary: Status: success -
|
172
|
-
|
173
|
-
###Delete vApp
|
174
|
-
This command deletes a given vApp.
|
175
|
-
|
176
|
-
_Example:_
|
226
|
+
$ knife vc vapp start clone3
|
227
|
+
vApp startup...
|
228
|
+
Summary: Status: success - time elapsed: 2.967 seconds
|
177
229
|
|
178
|
-
$ knife vc vapp delete c1bad644-6c4d-40fc-a46b-7624ff6d5e75
|
179
|
-
Do you really want to DELETE vApp c1bad644-6c4d-40fc-a46b-7624ff6d5e75?? (Y/N) Y
|
180
|
-
vApp deletion...Done!
|
181
|
-
Summary: Status: success - started at 2012-12-19T17:00:20.503+01:00 and ended at 2012-12-19T17:00:21.133+01:00
|
182
230
|
|
183
231
|
###Create vApp from template
|
184
232
|
This command creates a vApp starting from a template (see catalog item).
|
185
233
|
|
186
234
|
_Example:_
|
187
235
|
|
188
|
-
$ knife vc vapp create
|
189
|
-
vApp creation...
|
190
|
-
Summary: Status: success -
|
236
|
+
$ knife vc vapp create vDC_Test clone4 "Create example" 89e33fd7-04a7-4b5f-830b-2423c41089e3
|
237
|
+
vApp creation...
|
238
|
+
Summary: Status: success - time elapsed: 28.967 seconds
|
191
239
|
vApp created with ID: 9cdd92ad-ab65-467f-abe1-075e35c050ec
|
192
240
|
|
193
241
|
###Show vApp's details
|
@@ -195,44 +243,183 @@ This command shows details about a given vApp.
|
|
195
243
|
|
196
244
|
_Example:_
|
197
245
|
|
198
|
-
$ knife vc vapp show
|
246
|
+
$ knife vc vapp show TEST_CENTOS
|
199
247
|
Name: TEST_CENTOS
|
200
248
|
Status: running
|
201
|
-
|
202
|
-
|
203
|
-
|
249
|
+
Networks
|
250
|
+
TST_Data
|
251
|
+
Gateway Netmask Fence Mode Parent Network Retain Info
|
252
|
+
10.22.4.1 255.255.254.0 bridged TST_Data false
|
253
|
+
TST_FE
|
254
|
+
Gateway Netmask Fence Mode Parent Network Retain Info
|
255
|
+
10.22.3.129 255.255.255.128 bridged TST_FE false
|
256
|
+
VMs
|
257
|
+
Name Status IPs ID Scoped ID
|
258
|
+
CENTOS63 stopped 83f6aeb3-f624-4a79-9e6b-23e162893daf 69b0fe46-224f-4266-a424-2fe16ca99ff7
|
204
259
|
|
205
260
|
###vApp's network configuration
|
206
|
-
This command allows for basic vApp network configuration.
|
207
|
-
E.g., retain IP address across deployments (defaults to POOL), set fence mode to _Isolated_ or _Bridge_
|
208
261
|
|
209
|
-
|
262
|
+
#### External networks
|
263
|
+
External vApp networks (from vDC) can be added, removed and modified using the _vapp network external_ command.
|
264
|
+
|
265
|
+
_Add example:_
|
266
|
+
|
267
|
+
$ knife vc vapp network external add test_vapp4 TST_DATA
|
268
|
+
Forcing parent network to itself
|
269
|
+
Adding TST_Data to vApp...
|
270
|
+
Summary: Status: success - time elapsed: 2.72 seconds
|
271
|
+
|
272
|
+
_Edit example:_
|
273
|
+
|
274
|
+
TBD
|
275
|
+
|
276
|
+
_Delete example:_
|
277
|
+
|
278
|
+
$ knife vc vapp network external delete test_vapp4 TST_Data
|
279
|
+
Removing TST_Data from vApp...
|
280
|
+
Summary: Status: success - time elapsed: 2.63 seconds
|
281
|
+
|
282
|
+
#### Internal networks
|
283
|
+
Internal vApp networks can be added, removed and modified using the _vapp network internal_ command.
|
284
|
+
|
285
|
+
_Add example:_
|
286
|
+
|
287
|
+
$ knife vc vapp network internal add test_vapp4 INT_NET
|
288
|
+
Gateway: 192.168.0.1
|
289
|
+
Netmask: 255.255.255.0
|
290
|
+
Dns1: 190.23.12.34
|
291
|
+
Dns2: 21.33.24.21
|
292
|
+
Dns suffix: test.suffix.local
|
293
|
+
Start address: 192.168.0.10
|
294
|
+
End address: 192.168.0.100
|
295
|
+
Adding INT_NET to vApp...
|
296
|
+
Summary: Status: success - time elapsed: 6.88 seconds
|
297
|
+
|
298
|
+
# Note that options can also be specified on the command line
|
299
|
+
$ knife vc vapp network internal add test_vapp4 INT_NET --gateway "192.168.0.1"...
|
300
|
+
|
301
|
+
_Edit example:_
|
302
|
+
|
303
|
+
## Add a parent network to this internal network
|
304
|
+
# Note that FenceMode is automatically set to natRouted
|
305
|
+
|
306
|
+
## PRE-edit
|
307
|
+
...
|
308
|
+
Networks
|
309
|
+
INT_NET
|
310
|
+
Gateway Netmask Fence Mode Parent Network Retain Network
|
311
|
+
192.168.0.1 255.255.255.0 isolated TST_FE true
|
312
|
+
TST_FE
|
313
|
+
Gateway Netmask Fence Mode Parent Network Retain Network
|
314
|
+
10.202.3.129 255.255.255.128 bridged TST_FE false
|
315
|
+
...
|
316
|
+
|
317
|
+
$ knife vc vapp network internal edit test_vapp4 INT_NET --parent-network TST_FE
|
318
|
+
Retrieving parent network details
|
319
|
+
Setting a parent network for an internal network requires fence mode natRouted. Fixing it...
|
320
|
+
vApp network configuration for INT_NET...
|
321
|
+
Summary: Status: success - time elapsed: 5.324 seconds
|
322
|
+
|
323
|
+
## POST-edit
|
324
|
+
...
|
325
|
+
Networks
|
326
|
+
INT_NET
|
327
|
+
Gateway Netmask Fence Mode Parent Network Retain Network
|
328
|
+
192.168.0.1 255.255.255.0 natRouted TST_FE true
|
329
|
+
TST_FE
|
330
|
+
Gateway Netmask Fence Mode Parent Network Retain Network
|
331
|
+
10.202.3.129 255.255.255.128 bridged TST_FE false
|
332
|
+
...
|
333
|
+
|
334
|
+
_Delete example:_
|
335
|
+
|
336
|
+
$ knife vc vapp network internal delete test_vapp4 INT_NET
|
337
|
+
Removing INT_NET from vApp...
|
338
|
+
Summary: Status: success - time elapsed: 5.05 seconds
|
339
|
+
|
340
|
+
###Clone a vApp
|
341
|
+
This command clones an existing vApp.
|
210
342
|
|
211
343
|
_Example:_
|
212
344
|
|
213
|
-
$ knife vc vapp
|
345
|
+
$ knife vc vapp clone vDC_Test clone_vAPP clone3
|
346
|
+
Cloning vApp...
|
347
|
+
Summary: Status: success - time elapsed: 24.69 seconds
|
348
|
+
vApp cloned with ID: 587210aa-cf92-48e8-8f37-07e058c0116f
|
214
349
|
|
215
350
|
###Show VM's details
|
216
351
|
This command shows details about a given VM.
|
217
352
|
|
218
353
|
_Example:_
|
219
354
|
|
220
|
-
$ knife vc vm show
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
355
|
+
$ knife vc vm show TestVM --vapp TEST_CENTOS
|
356
|
+
VM Name: centos64-x64-s
|
357
|
+
OS Name: CentOS 4/5/6 (64-bit)
|
358
|
+
Status: running
|
359
|
+
|
360
|
+
Cpu
|
361
|
+
Number of Virtual CPUs 2 virtual CPU(s)
|
362
|
+
|
363
|
+
Memory
|
364
|
+
Memory Size 1024 MB of memory
|
365
|
+
|
366
|
+
Disks
|
367
|
+
Hard disk 1 16384 MB
|
368
|
+
|
369
|
+
Networks
|
370
|
+
TST_FE
|
371
|
+
Index 0
|
372
|
+
Ip 10.202.3.251
|
373
|
+
External ip
|
374
|
+
Is connected true
|
375
|
+
Mac address 00:50:21:02:01:27
|
376
|
+
Ip allocation mode POOL
|
228
377
|
|
229
378
|
Guest Customizations
|
230
|
-
Enabled
|
231
|
-
Admin passwd enabled
|
232
|
-
Admin passwd auto
|
233
|
-
Admin passwd
|
234
|
-
Reset passwd required
|
235
|
-
Computer name
|
379
|
+
Enabled true
|
380
|
+
Admin passwd enabled false
|
381
|
+
Admin passwd auto false
|
382
|
+
Admin passwd xxxxxxxx
|
383
|
+
Reset passwd required false
|
384
|
+
Computer name centos64-x64-s
|
385
|
+
|
386
|
+
###Set VM's CPUs / Memory / Name
|
387
|
+
This command sets name, CPUs and RAM info for a given VM.
|
388
|
+
|
389
|
+
_Example:_
|
390
|
+
|
391
|
+
$ knife vc vm set info --name NewName --vapp vApp_test vm-test
|
392
|
+
Renaming VM from vm-test to NewName
|
393
|
+
Summary: Status: success - time elapsed: 7.66 seconds
|
394
|
+
|
395
|
+
$ knife vc vm set info --ram 512 --vapp vApp_test vm-test
|
396
|
+
VM setting RAM info...
|
397
|
+
Summary: Status: success - time elapsed: 7.69 seconds
|
398
|
+
|
399
|
+
$ knife vc vm set info --cpu 2 --vapp vApp_test vm-test
|
400
|
+
VM setting CPUs info...
|
401
|
+
Summary: Status: success - time elapsed: 5.19 seconds
|
402
|
+
|
403
|
+
###Set VM's disks
|
404
|
+
This command manages disks for a given VM.
|
405
|
+
|
406
|
+
_Example:_
|
407
|
+
|
408
|
+
# Create a new disk
|
409
|
+
$ knife vc vm set disks --add --disk-size 3000 --vapp vApp_test vm-test
|
410
|
+
VM setting Disks info...
|
411
|
+
Summary: Status: success - time elapsed: 6.12 seconds
|
412
|
+
|
413
|
+
# Resize an existing disk (note that disk size can only be increased)
|
414
|
+
$ knife vc vm set disks --disk-name "Hard disk 2" --disk-size 3500 --vapp vApp_test vm-test
|
415
|
+
VM setting Disks info...
|
416
|
+
Summary: Status: success - time elapsed: 6.69 seconds
|
417
|
+
|
418
|
+
# Delete an existing disk
|
419
|
+
$ knife vc vm set disks --disk-name "Hard disk 2" --delete --vapp vApp_test vm-test
|
420
|
+
Do you really want to DELETE disk Hard disk 2? (Y/N) Y
|
421
|
+
VM setting Disks info...
|
422
|
+
Summary: Status: success - time elapsed: 7.21 seconds
|
236
423
|
|
237
424
|
###VM's network configuration
|
238
425
|
This command allows for basic VM network configuration.
|
@@ -242,25 +429,103 @@ Please note that you must use the human readable name of the network (i.e., _Tes
|
|
242
429
|
|
243
430
|
_Example:_
|
244
431
|
|
245
|
-
$ knife vc vm config network
|
246
|
-
VM network configuration...
|
247
|
-
Summary: Status: success -
|
432
|
+
$ knife vc vm config network test_vm TestNet_1 --vapp test_vapp1
|
433
|
+
VM network configuration...
|
434
|
+
Summary: Status: success - time elapsed: 4.35 seconds
|
248
435
|
|
249
436
|
###VM's Guest Customization configuration
|
250
437
|
This command allows for basic VM Guest Customization configuration.
|
438
|
+
By default it forces a guest customization, use _--no-force_ to disable it.
|
439
|
+
|
440
|
+
Please note that the vapp must be turned off.
|
441
|
+
|
442
|
+
There are several options that can be specified.
|
443
|
+
|
444
|
+
i.e.,
|
445
|
+
|
446
|
+
* admin-passwd: change guest admin password
|
447
|
+
* script: load a given file and use it as guest customization script
|
448
|
+
* guest-computer-name: change guest name
|
449
|
+
|
450
|
+
_Example:_
|
451
|
+
|
452
|
+
$ knife vc vm config guest test_vm --vapp test_vapp1 --script guest_script.txt
|
453
|
+
VM guest configuration...
|
454
|
+
Summary: Status: success - time elapsed: 5.23 seconds
|
455
|
+
Forcing Guest Customization...
|
456
|
+
Summary: Status: success - time elapsed: 2.567 seconds
|
457
|
+
|
458
|
+
It's also possible to upload a customization script using _script_:
|
459
|
+
|
460
|
+
$ knife vc vm config guest ... --script script_filename.txt
|
461
|
+
|
462
|
+
### Bootstrap
|
463
|
+
It's possible to bootstrap single VMs or every VM of a vApp.
|
464
|
+
|
465
|
+
_Example:_
|
466
|
+
|
467
|
+
# Bootstrap every VM belonging to test_vapp
|
468
|
+
$ knife vc vapp bootstrap test_vapp
|
469
|
+
Bootstrap VM: SMALL_CentOS6.4-x86_64...
|
470
|
+
Trying to reach xxxx (try 1/5)
|
471
|
+
xxxx:22 replied with: SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
|
472
|
+
Bootstrap IP: xxxx
|
473
|
+
Bootstrapping Chef on xxxx
|
474
|
+
xxxx Starting Chef Client, version 11.6.2
|
475
|
+
...
|
476
|
+
|
477
|
+
# Bootstrap a single VM
|
478
|
+
$ knife vc vm bootstrap SMALL_CentOS6.4-x86_64 --vapp test_vapp
|
479
|
+
Bootstrap VM: SMALL_CentOS6.4-x86_64...
|
480
|
+
Trying to reach xxxx (try 1/5)
|
481
|
+
xxxx:22 replied with: SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
|
482
|
+
Bootstrap IP: xxxx
|
483
|
+
Bootstrapping Chef on xxxx
|
484
|
+
xxxx Starting Chef Client, version 11.6.2
|
485
|
+
...
|
486
|
+
|
487
|
+
Since a VM may have several addresses, these commands loop over them until they
|
488
|
+
find a reachable one.
|
251
489
|
|
252
490
|
_Example:_
|
253
491
|
|
254
|
-
$ knife vc
|
255
|
-
VM
|
256
|
-
|
492
|
+
$ knife vc vapp bootstrap test_vapp
|
493
|
+
Bootstrap VM: SMALL_CentOS6.4-x86_64...
|
494
|
+
Trying to reach 192.168.0.102 (try 1/5)
|
495
|
+
Unable to reach 192.168.0.102:22 => Connection refused - connect(2)
|
496
|
+
...
|
497
|
+
Trying to reach xxxx (try 1/5)
|
498
|
+
xxxx:22 replied with: SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
|
499
|
+
Bootstrap IP: xxxx
|
500
|
+
Bootstrapping Chef on xxxx
|
501
|
+
xxxx Starting Chef Client, version 11.6.2
|
502
|
+
...
|
503
|
+
|
504
|
+
### OVF Upload
|
505
|
+
Upload a given OVF.
|
506
|
+
|
507
|
+
$ knife vc ovf upload VDC Catalog TemplateName "Example ovf upload" centos64.ovf
|
508
|
+
Uploading OVF...
|
509
|
+
Time: 00:03:12 <=========> 100% Uploading: ../vm-d384582f-2457-477c-ad9b-6228740ca762-disk-0.vmdk
|
510
|
+
Time: 00:00:32 <=========> 100% Uploading: ../vm-d384582f-2457-477c-ad9b-6228740ca762-disk-1.vmdk
|
511
|
+
OVF uploaded. vAppTemplate created with ID: b1e58873-8227-4168-add3-87554d2043db
|
512
|
+
|
513
|
+
DEBUGGING
|
514
|
+
--
|
515
|
+
|
516
|
+
The underlying library *vcloud-rest* can be configured to print debug information.
|
517
|
+
Debug can be enabled setting the following environment variables:
|
518
|
+
|
519
|
+
* *VCLOUD_REST_DEBUG_LEVEL*: to specify the log level (e.g., INFO)
|
520
|
+
* *VCLOUD_REST_LOG_FILE*: to specify the output file (defaults to STDOUT)
|
521
|
+
|
257
522
|
|
258
523
|
LICENSE
|
259
524
|
--
|
260
525
|
|
261
526
|
Author:: Stefano Tortarolo <stefano.tortarolo@gmail.com>
|
262
527
|
|
263
|
-
Copyright:: Copyright (c) 2012
|
528
|
+
Copyright:: Copyright (c) 2012-2013
|
264
529
|
License:: Apache License, Version 2.0
|
265
530
|
|
266
531
|
Licensed under the Apache License, Version 2.0 (the "License");
|