|
1 |
| -== vApp Provision in vCloudDirector through Red Hat CloudForms |
| 1 | +== vApp Provisioning in vCloudDirector through Red Hat CloudForms |
2 | 2 |
|
3 |
| -The VMware vCloudDirector uses vApps as a basic entity on which power operations are performed. The vApp can include one or more virtual machines and in CloudForms a vApp is represented as a type of orchestration stack. User can find more information about vApps on link:https://pubs.vmware.com/vca/index.jsp?topic=%2Fcom.vmware.vca.od.ug.doc%2FGUID-3F4BF45F-89CE-4478-B6D5-5BD7EE749C08.html[VMware pages]. |
| 3 | +*vApp template* is basic entity of provisioning on VMware vCloudDirector. It describes both virtual |
| 4 | +machines specifications and vApp networks specifications as well as connection between the two. |
| 5 | +In CloudForms, vApp template is inventoried as an orchestration stack template and can be assigned |
| 6 | +a service dialog to allow provisioning. |
4 | 7 |
|
5 |
| -Note: Currently CloudForms cannot change any attributes of a vApp or any virtual machines inside vApp. All vApp modification should be realized throug VMware vCloud Director. |
| 8 | +NOTE: CloudForms currently only supports vApp provisioning through vApp template instantiation. |
| 9 | +Composing a new vApp is not supported at the moment. |
6 | 10 |
|
7 | 11 | === Prerequisites
|
8 |
| -.The vApp provision process requires: |
| 12 | +.vApp provisioning process (through CloudForms) requires: |
9 | 13 | * Properly configured vCloudDirector:
|
10 |
| - - Valid Organization |
11 |
| - - Organization VCD (virtual data center) |
12 |
| - - Catalog populated with vApps |
| 14 | + - desired vApp template must be available in Catalog owned by or shared by our organization. In case |
| 15 | + of shared catalog, CloudForms settings must allow inventoring public images. |
| 16 | + - vApp template should be prepared following some recommendations (please see below) to offer better |
| 17 | + experience to user when provisioning request customization. |
13 | 18 | * Properly configured CloudForms:
|
14 |
| - - VMware Cloud provider added (vCloudDirector, organization level access) |
| 19 | + - Setting `:get_public_images:` must be set to `true` in case we're using vApp template from shared |
| 20 | + catalog. vApp template won't be inventoried otherwise. |
| 21 | + - VMware vCloud cloud provider added and inventory fetched |
15 | 22 |
|
16 |
| -=== vApp provision process |
17 |
| -The vApp provision process is comprised of several steps. First the Service Dialog is required to be created. After this the new Service Item to provision the vApp is added to the Catalog. |
| 23 | +Following guide assumes VMware vCloud cloud provider inventory is successfully fetched, meaning also |
| 24 | +vApp template is stored in CloudForms as an orchestration template. Please verify by navigating to |
| 25 | +`Services -> Catalogs` in the main menu and then examining `Orchestration Templates -> vApp Templates` |
| 26 | +tab. Your vApp template should be listed there. |
18 | 27 |
|
19 |
| -==== Create a service dialog for vApp |
20 |
| -In the CloudForms navigate to "Services>Catalogs>Orchestration templates". In "All Orchestration Templates" folder find "vApp templates" and choose vApp template. Now from Configuration menu choose "Create Service Dialog from Orchestration template". Choose the name of the Dialog and save the dialog. |
| 28 | +=== vApp template design recommendations |
| 29 | +CloudForms is able to inventory and provision any vApp template obtained from vCloudDirector, but not all |
| 30 | +of them will be fully customizable due to following limitations: |
21 | 31 |
|
| 32 | +* **Adding/removing vApp networks not supported.** Service dialog supports editing any vApp network that is defined in |
| 33 | + vApp template, but creating/deleting them is currently not supported. Bear this in mind when preparing vApp template |
| 34 | + on vCloudDirector: if you expect user will want to hook VM's NIC to a vApp network, please create it upon vApp |
| 35 | + template creation. |
| 36 | +* **Connecting vApp network to VDC network.** Service dialog is currently not able to determine what |
| 37 | + value to select initially in vApp network's drop-down for selecting parent network, therefore it always |
| 38 | + selects none. User is then offered to pick desired VDC/external network to connect vApp network to. Please |
| 39 | + take this into account when preparing vApp template: rather connect all VM's NICs to isolated vApp |
| 40 | + networks and let user connect those to VDC/external networks during provisioning customization. |
| 41 | +* **Real-time validation not supported.** Service dialog will capture all the customization parameters |
| 42 | + from user and send provisioning request to CloudForms backend, automation engine, where it will be |
| 43 | + executed. Potential problems with service dialog parameters (e.g. duplicated vApp name) will only be |
| 44 | + visible via CloudForms logging mechanism. For this reason we recommend you to prepare vApp templates in |
| 45 | + a way that minimizes probability of failing request: |
22 | 46 |
|
23 |
| -==== Create a Catalog item |
| 47 | + ** Make sure VMs actually boot and that they have VMware Tools already installed. If not, provisioning |
| 48 | + may fail if user opts-in to enable guest customization. Alternatively, make sure guest customization is |
| 49 | + disabled by default to let user know she probably shouldn't turn it on. |
| 50 | + ** Make sure VDC (virtual data center) has enough resources. If no IP addresses are available, for example, |
| 51 | + and user opts-in for IP allocation using IP pool, provisioning will fail. |
24 | 52 |
|
25 |
| -NOTE: This step assumes that there is at least one catalog already create. |
| 53 | +=== vApp provisioning process |
| 54 | +vApp provisioning is a three-step process. First step is catalog item preparation, carried out by VMware vCloud |
| 55 | +cloud provider's owner. Catalog item represents orderable unit, ordering one is in fact vApp |
| 56 | +template provisioning through CloudForms. Second step is catalog item ordering, carried out by user. |
| 57 | +Final step is order approval, carried out by owner: |
26 | 58 |
|
27 |
| -In the CloudForms navigate to "Services>Catalogs>Catalog Items". From Configuration menu, choose "Add New Catalog Item". In "Catalog Item" menu choose "Orchestration". |
| 59 | +. Catalog, service dialog and catalog item preparation (owner) |
| 60 | +. Catalog item ordering with customization (user) |
| 61 | +. Order approval, which results in actual provisioning to happen (owner) |
| 62 | + |
| 63 | +NOTE: New catalog item and service dialog need to be created for each vApp template. But they |
| 64 | +can be added to the same catalog. |
| 65 | + |
| 66 | +==== Catalog, service dialog and catalog item preparation |
| 67 | +Login into CloudForms where you have your VMware vCloud cloud provider added. Then follow these steps to |
| 68 | +create a new catalog and catalog item (with service dialog) that users will be able to order. |
| 69 | + |
| 70 | +===== Prepare catalog |
| 71 | +Navigate to _Services -> Catalogs_ in the main menu and then open _Catalogs_ tab. Option _Configuration -> |
| 72 | +Add a New Catalog_ appears in center menu. Please pick descriptive catalog name and click "Add". |
| 73 | + |
| 74 | +===== Prepare service dialog |
| 75 | +Navigate to _Services -> Catalogs_ in the main menu and then open _Orchestration Templates -> vApp |
| 76 | +Templates_ tab. Your vApp template should be listed here. When you select it, option _Configuration -> |
| 77 | +Create Service Dialog from Orchestration Template_ appears in center menu. Please pick descriptive |
| 78 | +service dialog name and click "Save". |
| 79 | + |
| 80 | +===== Prepare catalog item |
| 81 | +Navigate to _Services -> Catalogs_ in the main menu and then open _Catalog Items_ tab. Option _Configuration -> |
| 82 | +Add a New Catalog Item_ appears in center menu. |
28 | 83 |
|
29 | 84 | image:../../images/vcd-vapp04-itemtype.png[alt="Select Orchestration stack"]
|
30 | 85 |
|
| 86 | +Choose "Orchestration" type and populate form with appropriate data: |
| 87 | + |
| 88 | +image:../../images/vapp_provisioning/catalog-item-create.png[alt="Create catalog item"] |
| 89 | + |
| 90 | +|===================================================================================== |
| 91 | +| "Name / Description" | catalog item name and description |
| 92 | +| "Display in Catalog" | yes |
| 93 | +| "Catalog" | catalog that was created in previous step |
| 94 | +| "Dialog" | service dialog that was created in previous step |
| 95 | +| "Orchestration Template" | vApp template that service dialog was created for |
| 96 | +| "Provider" | VMware vCloud cloud provider instance that service dialog was created for |
| 97 | +| "Provisioning Entry Point" | (leave default) |
| 98 | +| "Reconfigure Entry Point" | (leave default) |
| 99 | +| "Retirement Entry Point" | (leave default) |
| 100 | +|===================================================================================== |
| 101 | + |
| 102 | +IMPORTANT: Selected orchestration template *MUST* match vApp template that service |
| 103 | +dialog was created from. Provisioning will fail otherwise. |
| 104 | + |
| 105 | +IMPORTANT: Selected provider *MUST* match VMware vCloud cloud provider instance that |
| 106 | +service dialog was created for. |
| 107 | + |
| 108 | +Eventually click "Add" to save catalog item. It becomes visible in catalog and therefore available for |
| 109 | +users to order it. |
| 110 | + |
| 111 | +==== Catalog item ordering with customization |
| 112 | +Login into CloudForms as a regular user. Then follow steps below to customize and order catalog item. |
| 113 | + |
| 114 | +Navigate to _Services -> Catalogs_ in the main menu and then open _Service Catalogs_ tab. Select desired |
| 115 | +catalog item from the list and click "Order": |
| 116 | + |
| 117 | +image:../../images/vapp_provisioning/catalog-item-pick-to-order.png[alt="Pick catalog item to order"] |
| 118 | + |
| 119 | +Service dialog opens offering you vApp template customization prior ordering. Exact number of |
| 120 | +inputs varies depending on concrete vApp template it bases on, but there are always three main |
| 121 | +sections present: basic information section, vApp networks customization section and virtual machines customization |
| 122 | +section. You need to fill-in the basic section while other sections are optional and can be left with |
| 123 | +default values. |
| 124 | + |
| 125 | +===== Basic information section of vApp template provisioning dialog |
| 126 | +image:../../images/vapp_provisioning/catalog-item-section-basic.png[alt="Basic section"] |
| 127 | + |
| 128 | +Below please find essential fields bold that must always be filled-in. All other fields are optional |
| 129 | +and don't need to be modified for provisioning to succeed: |
| 130 | + |
| 131 | +|===================================================================================== |
| 132 | +| "Tenant" | (leave default) |
| 133 | +| *"Stack Name"* | new vApp name |
| 134 | +| *"Availability zone"* | VDC to deploy the new vApp to |
| 135 | +| "vApp Template" | (leave default) |
| 136 | +| "Deploy vApp" | whether vApp should be deployed upon provisioning |
| 137 | +| "Power On vApp" | whether vApp should be powered on upon provisioning |
| 138 | +|===================================================================================== |
| 139 | + |
| 140 | +===== vApp networks customization section of vApp template provisioning dialog |
| 141 | +image:../../images/vapp_provisioning/catalog-item-section-vapp-network.png[alt="vApp network section"] |
| 142 | + |
| 143 | +Service dialog displays one vApp network customization section form (see screenshot above) for each vApp |
| 144 | +network from given vApp template. Default values are populated based on vApp template defaults. |
| 145 | + |
| 146 | +|===================================================================================== |
| 147 | +| "Parent Network" | VDC/external network to connect this vApp network to. Leave unselected to keep |
| 148 | + vApp network isolated i.e. limited to vApp only |
| 149 | +| "Fence Mode" | How to connect to parent VDC/external network. Please select "Isolated" when not |
| 150 | + connecting to any VDC/external network |
| 151 | +| "Gateway" | vApp network's default gateway |
| 152 | +| "Netmask" | vApp network's netmask |
| 153 | +| "DNS1", "DNS2" | IP addresses of DNS servers (optional) |
| 154 | +|===================================================================================== |
31 | 155 |
|
32 |
| -.Populate the Orchestration dialog with appropriate data: |
33 |
| -* Name |
34 |
| -* Tick "Display in Catalog" |
35 |
| -* Choose Catalog |
36 |
| -* Find the dialog, created in "Create a Service Dialog for vApp" step. |
37 |
| -* Select a provider |
| 156 | +===== VM customization section of vApp template provisioning dialog |
| 157 | +image:../../images/vapp_provisioning/catalog-item-section-vm.png[alt="VM section"] |
38 | 158 |
|
39 |
| -Saving the from concludes the step of creating the catalog. |
| 159 | +Service dialog displays one VM customization section form (see screenshot above) for each VM from given vApp |
| 160 | +template. Number of form fields varies depending on number of disks attached to VM and number |
| 161 | +of NICs (network interface cards) attached to VM. Screenshot above shows form for VM with one disk (Disk 0) |
| 162 | +and two NICs (NIC#0 and NIC#1). |
40 | 163 |
|
41 |
| -==== Provision (order) vApp service |
| 164 | +|===================================================================================== |
| 165 | +| "Instance Name" | VM name |
| 166 | +| "Instance Hostname" | VM hostname i.e. computer name (can only contain alphanumeric characters and |
| 167 | + hypens) |
| 168 | +| "Number of virtual CPUs" | how many virtual CPU cores to assign to VM |
| 169 | +| "Cores per socket" | how many virtual CPU cores to assign to each CPU socket (must be a divisor |
| 170 | + of number of CPU cores) |
| 171 | +| "Total memory (MB)" | VM memory in megabytes |
| 172 | +| "Guest customization" | whether to apply guest customization (administrator password etc.) to the |
| 173 | + guest operating system. Please enable this only for VMs that support guest |
| 174 | + customization or provisioning will fail. |
| 175 | +| "Administrator Password" | password to apply upon first VM boot. Leave empty to let vCloudDirector |
| 176 | + autogenerate it for you. Guest customization must be enabled for this to work. |
| 177 | +| "Require password change"| require administrator to change password upon first login |
| 178 | +| "Disk _n_ (MB)" | disk size in megabytes. Original value can only be increased, decreasing it will |
| 179 | + fail provisioning. Form input is rendered per VM's disk. |
| 180 | +| "NIC#_n_ Network" | vApp network to connect NIC to. Form input is rendered per VM's NIC. |
| 181 | +| "NIC#_n_ Mode" | NIC's IP allocation mode. Please also specify static IP address in case you |
| 182 | + opt-in for Static - MANUAL. Form input is rendered per VM's NIC. |
| 183 | +| "NIC#_n_ IP Address" | NIC's static IP address. Ignored unless mode is set to Static - MANUAL |
| 184 | + Please make sure IP address is within vApp network's range or provisioning |
| 185 | + will fail. Form input is rendered per VM's NIC. |
| 186 | +|===================================================================================== |
42 | 187 |
|
43 |
| -In the CloudForms navigate to "Services>Catalogs>Service Catalog". Choose your preferred Catalog where you saved the vApp service item and "Order" the item. Choose stack (vApp) name, Select availability zone, vApp parameters and Network. Submit the order for approval. |
| 188 | +Click "Submit" to submit order. Please note that VMware vCloud cloud provider owner needs to approve your order |
| 189 | +before it gets provisioned. |
0 commit comments