You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/adminguide/extensions/inbuilt_extensions.rst
+72-42Lines changed: 72 additions & 42 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,22 +16,22 @@
16
16
In-built Orchestrator Extensions
17
17
================================
18
18
19
-
CloudStack provides sample in-built orchestrator extensions for Proxmox and Hyper-V. These extensions are intended for demonstration and testing purposes.
20
-
The extension files are located at `/usr/share/cloudstack-management/extensions/Promox` and `/usr/share/cloudstack-management/extensions/HyperV` respectively.
21
-
The Proxmox extension is written in shell script, while the Hyper-V extension is written in python.
22
-
Both of these extensions support some custom actions in addition to the standard VM actions like deploy, start, stop, reboot, status and delete.
23
-
After installing or upgrading Cloudstack, these extensions will show up as disabled on the Extensions page in the UI.
19
+
CloudStack provides sample in-built Orchestrator Extensions for Proxmox and Hyper-V. These Extensions are intended for demonstration and testing purposes.
20
+
The Extension files are located at `/usr/share/cloudstack-management/extensions/Proxmox` and `/usr/share/cloudstack-management/extensions/HyperV` respectively.
21
+
The Proxmox Extension is written in shell script, while the Hyper-V Extension is written in python.
22
+
Both of these Extensions support some custom actions in addition to the standard VM actions like deploy, start, stop, reboot, status and delete.
23
+
After installing or upgrading CloudStack, in-built Extensions will show up in the Extensions section in UI.
24
24
25
25
|built-in-extensions.png|
26
26
27
-
**Note**: These extension may undergo changes with different CloudStack releases and backwards compatibility is not guaranteed.
27
+
**Note**: These Extensions may undergo changes with future CloudStack releases and backwards compatibility is not guaranteed.
28
28
29
29
Proxmox
30
30
^^^^^^^^
31
31
32
-
The Proxmox Cloudstack extension is written in shell script and communicates with a Proxmox cluster using the `Proxmox VE API`_ over HTTPS.
32
+
The Proxmox CloudStack Extension is written in shell script and communicates with the Proxmox Cluster using the `Proxmox VE API`_ over HTTPS.
33
33
34
-
Before using the Proxmox extension, ensure that the Proxmox datacenter is configured correctly and accessible to CloudStack.
34
+
Before using the Proxmox Extension, ensure that the Proxmox Datacenter is configured correctly and accessible to CloudStack.
35
35
36
36
Get the API Token-Secret from Proxmox
37
37
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -76,16 +76,23 @@ It should return a JSON response similar to this:
76
76
Adding Proxmox to CloudStack
77
77
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
78
78
79
-
To set up the Proxmox extension, follow these steps in CloudStack:
79
+
To set up the Proxmox Extension, follow these steps in CloudStack:
80
80
81
-
#. **Enable Extension.** Enable the extension by clicking the `Enable` button on the `Extensions` page in the UI.
82
-
#. **Create Cluster**. Create a Cluster with hypervisor type `External` and extension type `Proxmox`.
81
+
#. **Enable Extension**
82
+
83
+
Enable the Extension by clicking the `Enable` button on the `Extensions` page in the UI.
84
+
85
+
#. **Create Cluster**
86
+
87
+
Create a Cluster with Hypervisor type `External` and Extension type `Proxmox`.
83
88
84
89
|proxmox-add-cluster.png|
85
90
86
-
#. **Add Host.** Add a host to the newly created cluster with the following details:
91
+
#. **Add Host**
92
+
93
+
Add a Host to the newly created Cluster with the following details:
87
94
88
-
If the Proxmox nodes use a shared API endpoint or credentials, the `url`, `user`, `token`, and `secret` can be set in the Extension's `Configuration Details` instead of per host. However, `node` and `network_bridge` must still be specified individually for each host.
95
+
If the Proxmox nodes use a shared API endpoint or credentials, the `url`, `user`, `token`, and `secret` can be set in the Extension's `Configuration Details` instead of per Host. However, `node` and `network_bridge` must still be specified individually for each Host.
89
96
90
97
* **url**: IP address/URL for Proxmox API access, e.g., `https://<PROXMOX_URL>:8006`.
91
98
* **user**: User name for Proxmox API access
@@ -96,55 +103,63 @@ To set up the Proxmox extension, follow these steps in CloudStack:
96
103
97
104
|proxmox-add-host.png|
98
105
99
-
**Note**: If the TLS certificate cannot be verified when cloudstack connects to the Proxmox node, add the detail **verify_tls_certificate** and set it to **false** to skip certificate verification.
106
+
**Note**: If the TLS certificate cannot be verified when CloudStack connects to the Proxmox node, add the detail **verify_tls_certificate** and set it to **false** to skip certificate verification.
100
107
101
-
#. **Create Template.** A Template in CloudStack can map to either a `Template` or an `ISO` in Proxmox.
108
+
#. **Create Template**
109
+
110
+
A Template in CloudStack can map to either a `Template` or an `ISO` in Proxmox.
102
111
Provide a dummy `url` and template name. Select `External` as the hypervisor and `Proxmox` as the extension. Under `External Details`, specify:
103
112
104
113
* **template_type**: `template` or `iso`
105
114
* **template_id**: ID of the template in Proxmox (if `template_type` is `template`)
106
115
107
116
|proxmox-add-template.png|
108
117
109
-
* **iso_path**: full path to the ISO in Proxmox (if `template_type` is `iso`)
118
+
* **iso_path**: Full path to the ISO in Proxmox (if `template_type` is `iso`)
110
119
|proxmox-add-iso.png|
111
120
112
121
Note: Templates and ISOs should be stored on shared storage when using multiple Proxmox nodes. Or copy the template/iso to each host's local storage at the same location.
113
122
114
-
#. **Deploy Instance.** Deploy an instance using the template created above. Optionally, provide the detail `vm_name` to specify the name of the VM in Proxmox.
115
-
Otherwise, the CloudStack instance's internal name is used. The VM Id in Proxmox is mapped to the CloudStack instance and stored as a detail in CloudStack DB.
116
-
The instance will be provisioned on a randomly selected Proxmox host. The VM will be configured with the MAC address and VLAN ID as defined in CloudStack.
123
+
#. **Deploy Instance**
124
+
125
+
Deploy an Instance using the Template created above. Optionally, provide the detail `vm_name` to specify the name of the VM in Proxmox.
126
+
Otherwise, the CloudStack Instance's internal name is used. The VM Id in Proxmox is mapped to the CloudStack Instance and stored as a detail in CloudStack DB.
127
+
The Instance will be provisioned on a randomly selected Proxmox host. The VM will be configured with the MAC address and VLAN ID as defined in CloudStack.
117
128
118
129
|proxmox-deploy-instance.png|
119
130
120
-
#. **Lifecycle Operations.** Operations **Start**, **Stop**, **Reboot**, and **Delete** can be performed on the instance from CloudStack.
131
+
#. **Lifecycle Operations**
132
+
133
+
Operations **Start**, **Stop**, **Reboot**, and **Delete** can be performed on the Instance from CloudStack.
134
+
135
+
#. **Custom Actions**
121
136
122
-
#. **Custom Actions.** Custom actions **Create Snapshot**, **Restore Snapshot**, and **Delete Snapshot** are also supported for instances.
137
+
Custom actions **Create Snapshot**, **Restore Snapshot**, and **Delete Snapshot** are also supported for Instances.
123
138
124
139
.. _proxmox-networking:
125
140
Configuring Networking
126
141
~~~~~~~~~~~~~~~~~~~~~~
127
142
128
143
Proxmox nodes and CloudStack hypervisor hosts must be connected via a VLAN trunked network. On each Proxmox node,
129
144
a bridge interface should be created and connected to the network interface that carries the VLAN-tagged traffic.
130
-
This bridge must be specified under Configuration Details (`network_bridge`) when registering the Proxmox node as a host in CloudStack.
145
+
This bridge must be specified under Configuration Details (`network_bridge`) when registering the Proxmox node as a Host in CloudStack.
131
146
132
-
When a VM is deployed, CloudStack includes the assigned MAC address and VLAN ID in the extension payload.
147
+
When a VM is deployed, CloudStack includes the assigned MAC address and VLAN ID in the Extension payload.
133
148
The VM created on the Proxmox node is configured with this MAC and connected to the corresponding VLAN via the specified bridge.
134
149
135
150
Upon boot, the VM broadcasts a VLAN-tagged DHCP request, which reaches the CloudStack Virtual Router (VR) handling that VLAN.
136
151
The VR responds with the appropriate IP address as configured in CloudStack. Once the VM receives the lease, it becomes fully integrated into the CloudStack-managed network.
137
152
138
-
Users can then manage the Hyper-V VM like any other CloudStack guest instance. Users can apply egress policies,
139
-
firewall rules, port forwarding, and other networking features seamlessly through the CloudStack UI or API.
153
+
Users can then manage the Hyper-V VM like any other CloudStack guest Instance. Users can apply Egress Policies,
154
+
Firewall Rules, Port Forwarding, and other networking features seamlessly through the CloudStack UI or API.
140
155
141
156
Hyper-V
142
157
^^^^^^
143
158
144
-
The Hyper-V CloudStack extension is a Python-based script that communicates with the Hyper-V host using WinRM (Windows Remote Management) over HTTPS,
159
+
The Hyper-V CloudStack Extension is a Python-based script that communicates with the Hyper-V host using WinRM (Windows Remote Management) over HTTPS,
145
160
using NTLM authentication for secure remote execution of PowerShell commands that manage the full lifecycle of virtual machines.
146
161
147
-
Each Hyper-V host maps to a CloudStack host. Before using the Hyper-V extension, ensure that the Hyper-V host is accessible to the CloudStack Management Server via WinRM over HTTPS.
162
+
Each Hyper-V host maps to a CloudStack Host. Before using the Hyper-V Extension, ensure that the Hyper-V host is accessible to the CloudStack Management Server via WinRM over HTTPS.
148
163
149
164
Configuring WinRM over HTTPS
150
165
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -187,55 +202,70 @@ Apart from the `url`, `username` and `password`, the following details are requi
187
202
Adding Hyper-V to CloudStack
188
203
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
189
204
190
-
#. **Enable extension.** Enable the extension by clicking the `Enable` button on the `Extensions` page in the UI.
191
-
#. **Create Cluster**. Create a Cluster with hypervisor type `External` and extension type `HyperV`.
205
+
#. **Enable Extension**
206
+
207
+
Enable the Extension by clicking the `Enable` button on the `Extensions` page in the UI.
208
+
209
+
#. **Create Cluster**
210
+
211
+
Create a Cluster with Hypervisor type `External` and Extension type `HyperV`.
192
212
193
213
|hyperv-add-cluster.png|
194
214
195
-
#. **Add Host.** Add a host to the newly created cluster with the following details:
215
+
#. **Add Host**
216
+
217
+
Add a Host to the newly created Cluster with the following details:
196
218
197
219
|hyperv-add-host.png|
198
220
**Note**: Add the detail **verify_tls_certificate** set to **false** to skip TLS certificate verification for self-signed certificates.
199
221
200
-
#. **Create Template.** A Template in CloudStack can map to either a `Template` or an `ISO` in Hyper-V.
201
-
Provide a dummy `url` and template name. Select `External` as the hypervisor and `HyperV` as the extension. Under `External Details`, specify:
222
+
#. **Create Template**
223
+
224
+
A Template in CloudStack can map to either a `Template` or an `ISO` in Hyper-V.
225
+
Provide a dummy `url` and Template name. Select `External` as the hypervisor and `HyperV` as the Extension. Under `External Details`, specify:
202
226
203
227
* **template_type**: `template` or `iso`
204
228
* **generation**: VM generation (1 or 2)
205
-
* **template_path**: Full path to the template .vhdx file in Proxmox (if `template_type` is `template`)
229
+
* **template_path**: Full path to the template .vhdx file (if `template_type` is `template`)
206
230
207
231
|hyperv-add-template.png|
208
232
209
-
* **iso_path**: full path to the ISO in HyperV (if `template_type` is `iso`)
233
+
* **iso_path**: Full path to the ISO in HyperV (if `template_type` is `iso`)
210
234
* **vhd_size_gb**: Size of the VHD disk to create (in GB) (if `template_type` is `iso`)
211
235
212
236
|hyperv-add-iso.png|
213
237
214
238
Note: Templates and ISOs should be stored on shared storage when using multiple HyperV nodes. Or copy the template/iso to each host's local storage at the same location.
215
239
216
-
#. **Deploy Instance.** Deploy an instance using the template created above. The instance will be provisioned on a randomly selected Hyper-V host.
240
+
#. **Deploy Instance**
241
+
242
+
Deploy an Instance using the template created above. The Instance will be provisioned on a randomly selected Hyper-V host.
217
243
The VM will be configured with the MAC address and VLAN ID as defined in CloudStack.
218
-
The VM in Hyper-V is created with the name `'CloudStack instance's internal name' + '-' + 'CloudStack instance's UUID'` to keep it unique.
244
+
The VM in Hyper-V is created with the name `'CloudStack Instance's internal name' + '-' + 'CloudStack Instance's UUID'` to keep it unique.
245
+
246
+
#. **Lifecycle Operations**
247
+
248
+
Operations **Start**, **Stop**, **Reboot**, and **Delete** can be performed on the Instance from CloudStack.
219
249
220
-
#. **Lifecycle Operations.** Operations **Start**, **Stop**, **Reboot**, and **Delete** can be performed on the instance from CloudStack.
250
+
#. **Custom Actions**
221
251
222
-
#. **Custom Actions.** Custom actions **Suspend**, **Resume**, **Create Snapshot**, **Restore Snapshot**, and **Delete Snapshot** are also supported for instances.
252
+
Custom actions **Suspend**, **Resume**, **Create Snapshot**, **Restore Snapshot**, and **Delete Snapshot** are also supported for Instances.
223
253
224
254
Configuring Networking
225
255
~~~~~~~~~~~~~~~~~~~~~~
226
256
227
-
Hyper-V hosts and CloudStack hypervisor hosts must be connected via a VLAN trunked network.
257
+
Hyper-V hosts and CloudStack hypervisor Hosts must be connected via a VLAN trunked network.
228
258
On each Hyper-V host, an external virtual switch should be created and bound to the physical network interface that carries VLAN-tagged traffic.
229
259
This switch must be specified in the Configuration Details (network_bridge) when adding the Hyper-V host to CloudStack.
230
260
231
-
When a VM is deployed, CloudStack includes the assigned MAC address and VLAN ID in the extension payload.
261
+
When a VM is deployed, CloudStack includes the assigned MAC address and VLAN ID in the Extension payload.
232
262
The VM is then created on the Hyper-V host with this MAC address and attached to the specified external switch with the corresponding VLAN configured.
233
263
234
264
Upon boot, the VM sends a VLAN-tagged DHCP request, which reaches the CloudStack Virtual Router (VR) responsible for that VLAN.
235
265
The VR responds with the correct IP address as configured in CloudStack. Once the VM receives the lease, it becomes fully integrated into the CloudStack-managed network.
236
266
237
-
Users can then manage the Hyper-V VM like any other CloudStack guest instance. Users can apply egress policies,
238
-
firewall rules, port forwarding, and other networking features seamlessly through the CloudStack UI or API.
267
+
Users can then manage the Hyper-V VM like any other CloudStack guest Instance. Users can apply Egress Policies,
268
+
Firewall Rules, Port Forwarding, and other networking features seamlessly through the CloudStack UI or API.
239
269
240
270
241
271
.. _Proxmox VE API: https://pve.proxmox.com/pve-docs/api-viewer/index.html
0 commit comments