Skip to content

Commit

Permalink
wip done
Browse files Browse the repository at this point in the history
  • Loading branch information
lizoron committed Apr 19, 2024
1 parent 60c850e commit e952335
Show file tree
Hide file tree
Showing 7 changed files with 775 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,222 @@ sidebar_position: 3

# Add VMware vCenter Cloud Provider Resource

WIP
This article explains how to configure a vCenter cloud provider resource. The **VMware vCenter** cloud provider enables the deployment of virtual machines from vCenter templates, images, clones (existing vCenter VMs) and linked clones (snapshots of existing vCenter VMs). Each deployment type includes the required settings, attributes, and commands. For a video tutorial on how to set up the resource, watch the video at the bottom of the article.
:::important Tip:
We strongly recommend using the 2<sup>nd</sup> Gen version of the shell, which provides significant enhancements and capabilities, and is tamper-resistant from within CloudShell, ensuring your Azure cloud provider resources and Apps are in pristine condition. Useful articles: [Replacing the 1st Gen shell with a 2nd Gen version](https://help.quali.com/Online%20Help/0.0/Portal/Content/DevGuide/Reference/Converting-1G-Shells.htm#Migrate), [Cloud Provider Shells - Features and Capabilities Per Release](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/Clp-capabilities.htm).
:::
:::note Notes:
- vCenter elements created by CloudShell should not be altered as this may cause unexpected behavior.
- The supported versions are vSphere 5.5 - 6.5, 6.7, 7.
:::
**To add a vCenter cloud provider resource:**

1. Log in to the CloudShell domain in which this resource will reside. This will enable the Apps based on this cloud provider resource to be usable in this domain.
2. In the **Inventory** dashboard, in the **Resources** tab, click the folder in which you want to create the resource.
3. Click **\+ Add New**.
4. In the **Create New Resource** dialog box, select the **vCenter** cloud provider template. To use the vCenter 2<sup>nd</sup> Gen shell, select **VMware vCenter Cloud Provider 2G**.
5. Enter a **Name** for the vCenter resource.
:::note
The resource's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[
:::
6. Enter the **IP Addres**s of the vCenter server that will be used to deploy the virtual machines.
7. Click **Create**.

The Resource dialog box is displayed.

![](/Images/Admin-Guide/Inventory-Operations/AppsResourceDiscoveryInformation.png)

8. Enter the required information. Unless specified differently, paths are relative to the datacenter so for example, to specify VM storage "datastore cluster" that is under datacenter "QualiSB", enter "datastore cluster" in the **VM Storage** field. For guidance on finding each element in your vCenter server, see [vCenter cheetsheet for versions 5.5-6.5](https://help.quali.com/help%20versions/attachments/VCenter_5.5_6.5_Cloud_Provider_Resource_Configuration_Cheetsheet.pdf) or [vCenter cheetsheet for version 6.7 and above](https://help.quali.com/help%20versions/attachments/VCenter_6.7_Cloud_Provider_Resource_Configuration_Cheetsheet.pdf).
:::note
All vCenter elements must be located under the same data center.
:::

<table>
<thead>
<th>Attribute</th>
<th>Supporting shell version</th>
<th>Description</th>
</thead>
<tbody>
<tr>
<td>Address</td>
<td>All</td>
<td>IP address of the vCenter server</td>
</tr>
<tr>
<td>User</td>
<td>All</td>
<td>
User on the vCenter server.

The user must be assigned to the root level of the vCenter server with the necessary permissions. For details, see [Required vCenter User Permissions per Deployment Type](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/vCenter-User-Prmsn.htm).
</td>
</tr>
<tr>
<td>Password</td>
<td>All</td>
<td>
vCenter user's password
:::important
Password must not include a # character.
:::
</td>
</tr>
<tr>
<td>Default Datacenter</td>
<td>All</td>
<td>Datacenter within the vCenter that will be used for virtual machine deployment. All other settings of this vCenter resource should refer to entities associated with this datacenter.</td>
</tr>
<tr>
<td>VM Storage</td>
<td>All</td>
<td>
vCenter storage in which the VMs will be created. The storage can be either a datastore or a datastore cluster. For example: datastore1
:::note
To use a specific datastore that resides inside a cluster, specify the cluster name and the datastore name. For example: clustername/storage1
:::
</td>
</tr>
<tr>
<td>Holding Network</td>
<td>All</td>
<td>
Default network to be used for the VM’s vNICs when disconnecting them from another network. A distributed port group can also be specified.

Specify a network under the specified dvSwitch. Do not include the **dvSwitch** name in the path.
:::note
Only VNICs in this holding network will be used when connecting Apps based on this cloud provider resource in the sandbox.
:::
</td>
</tr>
<tr>
<td>VM Location</td>
<td>All</td>
<td>
Folder in the vSphere datacenter (defined in the **VM Storage** attribute) in which the VM will be created. Default is **Qualisystems**.

From CloudShell version 9.0, two folders are created within this folder, as needed: `Deployed Apps` and `Saved Sandboxes`. The `Deployed Apps` folder holds the deployed VM Apps and, if you have saved a sandbox as part of the **Save and Restore** paid add-on, the `Saved Sandboxes` folder is created to hold the VM artifacts created when a user saves a sandbox.
</td>
</tr>
<tr>
<td>Default dvSwitch</td>
<td>All</td>
<td>
(Optional if connectivity is not required) Default vCenter dvSwitch to be used when configuring virtual machine connectivity. Using the vCenter 2nd Gen shell, vSwitch is also supported.
:::important
CloudShell needs to create port groups in the dvSwitch in order to use Apps. Therefore, make sure you have an appropriate VMWare license that provides this capability.
:::
</td>
</tr>
<tr>
<td>VM Cluster</td>
<td>All</td>
<td>
vCenter cluster or host to use when deploying a virtual machine. To specify a host instead of a cluster, use: Cluster Name/Host IP.

:::note Notes:
- If the cluster is in **Under Maintenance** mode, the deployment may fail.
- Discovery of the resource will fail if your vCenter server has a datastore cluster folder with the same name as the specified VM cluster.
:::
</td>
</tr>
<tr>
<td>VM Resource Pool</td>
<td>All</td>
<td>Resource pool in which the virtual machine is created. Specify a resource pool under the specified **VM Cluster**. Do not include the **VM Cluster** name in the path. Leave this field empty if you specified a specific host name in the **VM Cluster** field or if you don't want to use a resource pool.</td>
</tr>
<tr>
<td>Shutdown Method</td>
<td>All</td>
<td>
Shutdown method to be used when powering off the VM. Options are **Hard** and **Soft**.

- **Hard**: (Default - starting with vCenter shell 4.2.0) Shuts down the virtual machine without shutting down any running applications
- **Soft**: Shuts down all running applications on the virtual machine before shutting down the virtual machine.
:::note
**Soft** shutdowns require VMware Tools to be installed on the VM.
:::
</td>
</tr>
<tr>
<td>Execution Server Selector</td>
<td>All</td>
<td>
(Optional) This attribute points to a pre-defined group of execution servers (grouped by a common **Execution Server Selector** value). To make the association, enter the same value you specified on the execution server.

For additional information on managing App deployments per domains, see [Managing Private Cloud Apps in Domains](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/Mng-Prvt-Cld-Apps-in-Dmns.htm).
:::note
App deployment requires a minimum number of slots to be available. See [Number of execution slots for VM deployments](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/Tst-n-Cmd-Exc.htm#Executio).
:::
</td>
</tr>
<tr>
<td>OVF Tool Path</td>
<td>All</td>
<td>
(Relevant when deploying vCenter VM from an image) Path to the OVF tool installation. Use the same path for all execution servers.
:::note
This path must be accessible to all execution servers that will be used to deploy Apps.
:::
</td>
</tr>
<tr>
<td>Reserved Networks</td>
<td>All</td>
<td>(Optional) Comma-separated list of reserved networks. vNICs configured to these networks will not be used for VM connectivity.</td>
</tr>
<tr>
<td>Behavior During Save (optional)</td>
<td>All</td>
<td>
(Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**.

- **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource
- **Remain Powered On**: The VM will remain powered on during the saving state.
- **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save.
:::note
After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save.
:::

If this field is left empty, the default value is **Remain Powered On**.
</td>
</tr>
<tr>
<td>Saved Sandbox Storage</td>
<td>All</td>
<td>
(Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](https://help.quali.com/Online%20Help/0.0/Portal/Content/CSP/LAB-MNG/Sndbx-Sv.htm) for more information.

For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1.

If this field is left empty, the default is the value configured in **VM Storage**.
</td>
</tr>
<tr>
<td>Promiscuous Mode</td>
<td>All</td>
<td>(Optional) Configures the port groups on the virtual switch to allow all incoming traffic. This setting is enabled by default.</td>
</tr>
<tr>
<td>Enable Tags</td>
<td>2<sup>nd</sup> Gen</td>
<td>(Applies to vCenter 6.5 and above) If enabled, vSphere tags will be added to new vSphere inventory objects created by the Shell - folders, networks, VMs, etc.</td>
</tr>
</tbody>
</table>

9. Click **Start Discovery** to validate the vCenter settings.

When the discovery process completes, a confirmation message is displayed. The resource is displayed in the **Inventory** dashboard in CloudShell Portal and in Resource Manager.

Apps can now be added using the vCenter resource. For additional information, see [Adding App templates](https://help.quali.com/Online%20Help/0.0/Portal/Content/CSP/MNG/Mng-Apps.htm#Adding).

To customize the App deployment types and publish App orchestration parameters, see [Customizing App Deployment Types](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/Cnfg-App-Dply-Types.htm).

<iframe width="100%" height="500px" src="https://www.youtube.com/embed/3j7OXk7Zp9A" title="Creating a vCenter Cloud Provider Resource" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>


## Related Topics

- [Adding Inventory Resources](https://help.quali.com/Online%20Help/0.0/Portal/Content/CSP/INVN/Add-Rsrc-Tmplt.htm)
- [Managing Private Cloud Apps in Domains](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/Mng-Prvt-Cld-Apps-in-Dmns.htm)
Original file line number Diff line number Diff line change
@@ -1 +1,52 @@
WIP
# VMware vCenter Integration and Configuration

This article discusses the integration of CloudShell with vCenter to allow CloudShell to spin up and manage the lifecycle of VMs hosted on vCenter Server. vCenter integration is provided out of the box starting with CloudShell version 7.0 and includes the following:

- VM lifecycle management (Deploy App, Power On, Refresh IP, Power Off and Delete)
- Connectivity with other VMs and physical resources, including static VMs. Connectivity is based on vCenter dvSwitch (standard vSwitch supported in [vCenter 2<sup>nd</sup> Gen cloud provider shell](https://community.quali.com/repos/5386/vmware-vcenter-cloud-provider-shell-2g)).
- Snapshot management (Save Snapshot, Restore Snapshot, and Get Snapshots)

CloudShell supports two integration modes with vCenter, where Quali Server is installed internally on a vCenter VM or externally.

## CloudShell App deployment flow on vCenter

During the deployment of vCenter Apps in a CloudShell sandbox, CloudShell accesses the vCenter Server defined in the cloud provider resource, and does the following:

1. Creates the VM on the ESXi host or host cluster.
2. Creates connectivity. Allocates VLAN ID for each required VLAN network, according to VLAN allocation policy defined in the sandbox (VLAN services), and adds the VM's NIC(s) to the network(s).
3. Powers on the VM and refreshes the VM's IP.
4. Runs configuration management on the VM (if defined).

## Basic Requirements

The following VMware vSphere components are required for CloudShell integration with vCenter (supported version is listed in [vCenter Integration Architecture and Prerequisites](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/vCenter-Prereqs.htm)):

- vSphere® Standard™ / Enterprise Plus™/ with Operations Management™ / Platinum™
:::note
CloudShell connectivity requires vSphere® Enterprise Plus™ and above.
:::
- vSphere Client
- vCenter server
- ESXi server
- dvSwitch that is capable of creating and configuring port groups (vCenter 2<sup>nd</sup> Gen shell supports standard vSwitch as well)

Note that for additional capabilities or to integrate with other VMware vSphere components such as vSphere Client, you will need to implement a custom cloud provider that supports these options. For details, see the Dev Guide's [Getting Started with Cloud Provider Development](https://help.quali.com/Online%20Help/0.0/Portal/Content/DevGuide/Cld-Prvdrs/Getting-Started.htm).

## vCenter integration workflow

For each vCenter Server you want to integrate with CloudShell, perform the following steps:

1. Prepare vCenter Server for integration with CloudShell. See [vCenter Integration Architecture and Prerequisites](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/vCenter-Prereqs.htm).
2. Designate a vCenter user with the required permissions to be used by CloudShell to access and interact with vCenter Server. See [Required vCenter User Permissions per Deployment Type](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/vCenter-User-Prmsn.htm).
3. [Add VMware vCenter Cloud Provider Resource](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/vCenter-Cld-Prvdr-Rsc.htm) based on the specifications of the designated vCenter datacenter.
4. Set up CloudShell App Templates to deploy and configure VMs on the datacenter. See [Add a vCenter App Template](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/vCenter-App.htm).

To have CloudShell App deployments run on specific domains in CloudShell, follow the steps in [Managing Private Cloud Apps in Domains](https://help.quali.com/Online%20Help/0.0/Portal/Content/Admn/Mng-Prvt-Cld-Apps-in-Dmns.htm).
5. Configure QualiX for in-browser connections to App VMs hosted on vCenter Server from the sandbox. See [QualiX Installation and Configuration](https://help.quali.com/Online%20Help/0.0/Portal/Content/QualiX/Qualix.htm).
:::note
The QualiX Server must be accessible to the vCenter Server and can be installed either externally or in a VM on the vCenter Server.
:::
Loading

0 comments on commit e952335

Please sign in to comment.