If you are new to vRealize Automation or only need a refresher course, this tutorial guides you through the Cloud Assembly configuration process. You add cloud vSphere account endpoints, define the infrastructure, add users to projects, and then design and deploy a workload by using VMware Cloud Templates based on vSphere resource types, learning the process along the way.

Although this tutorial is just the beginning, you are on the path to delivering self-service automation and iterative development that works across multiple public and private clouds. This tutorial focuses on VMware vCenter Server and NSX-T. After you finish this workflow, you can apply what you've learned to add more types of cloud accounts and deliver more sophisticated cloud templates.

As you work your way through the steps, we provide data examples. Replace the examples with values that work in your environment.

You perform all the steps in this tutorial in Cloud Assembly.

This configuration process is the foundation of your Cloud Assembly development experience. As you build your infrastructure and mature your cloud template development skills, you will repeat and expand on this workflow.

What to do first

  • Verify that you have the Cloud Assembly Administrator role. See Organization and service user roles in vRealize Automation.
  • If you have not used the VMware vCenter Server or the VMware Cloud Foundation Quickstart wizards in the vRealize Automation console, you can do so now.

    These wizard-driven workflows include most but not all of the configuration in this tutorial.

    This tutorial is a hands-on experience that adds to your understanding of how to put together a working infrastructure and deploy a workload.

    See How do I set up Cloud Assembly in the Getting Started guide.

  • If you have not yet used the guided setup that is available in Cloud Assembly, you can do it now. The guided setup takes you through most but not all of the procedures that you do in this tutorial. To open the guided setup, click Guided Setup on the right side of the tab bar.
  • Ensure that you have vCenter Server and NSX credentials. For more information about the permissions that the credentials must have, see Credentials required for working with cloud accounts in vRealize Automation. If you plan to add additional users to projects, verify that they are members of the Cloud Assembly service.

Step 1: Add the vCenter Server and NSX cloud accounts

The cloud accounts provide the credentials that vRealize Automation uses to connect to vCenter Server and the associated NSX server.

  1. Add the vCenter Server cloud account.

    The vCenter Server cloud account provides the vCenter credentials that Cloud Assembly uses to discover resources and deploy cloud templates.

    For additional information about vCenter Server cloud accounts, see Create a vCenter cloud account in vRealize Automation.

    1. Select Infrastructure > Connections > Cloud Accounts.
    2. Click Add Cloud Account and select vCenter.
    3. Enter the values.
      The vCenter Server cloud account configuration page with sample values.

      Remember that these values are only examples. Your values will be specific to your environment.

      Setting Sample Value
      Name vCenter Server Account
      vCenter IP address / FQDN your-dev-vcenter.company.com
      Username and Password [email protected]
    4. To verify the credentials, click Validate.
    5. To Allow provisioning to these datacenters, select one or more data centers.
    6. Skip the NSX cloud account. We'll configure that later, linking the vCenter Server account to the NSX cloud account.
    7. Click Add.
  2. Add an associated NSX cloud account.

    The NSX-T cloud account provides the NSX-T credentials that Cloud Assembly uses to discover network resources and deploy networks with cloud templates.

    For more information about NSX-T cloud accounts, see Create a vCenter cloud account in vRealize Automation.

    1. Select Infrastructure > Connections > Cloud Accounts.
    2. Click Add Cloud Account and select either NSX-T or NSX-V. This tutorial uses NSX-T.
    3. Enter the values.
      The NSX-T cloud account configuration page with sample values.

      These values are only examples. Your values will be specific to your environment.

      Setting Sample Value
      Name NSX-T Account
      vCenter IP address / FQDN your-dev-NSX-vcenter.company.com
      Username and Password [email protected]
      NSX mode

      Don't know what to select?

      Here's a great opportunity to use the in-product help. Click the information icon to the right of field. Notice that the field-level help includes information that can help you configure the option.

      In this example, select Policy.

    4. To verify the credentials, click Validate.
    5. To associate the vCenter cloud account you created in the previous step, click Add and then select the vCenter Account.

      This vCenter cloud account association ensures network security.

    6. On the NSX cloud account page, click Add.

Step 2: Define the cloud zone compute resources

The cloud zones are groups of compute resources in an account/region that are then made available to projects. The project members deploy cloud templates by using the resources in the assigned cloud zones. If you want to have more granular control over where project cloud templates are deployed, you can create multiple cloud zones with different compute resources.

Account/regions are how cloud vendors tie resources to isolated regions or datastores. The account indicates the cloud account type and the region indicates the region or datastore. vCenter Server uses datastores and the provisioning resources are the selected clusters and resource pools.

For this tutorial, you must ensure that the cloud zones include the resources that support the goals of the project development team, and your budget and management requirements.

For more information about cloud zones, see Learn more about Cloud Assembly cloud zones.

  1. Select Infrastructure > Configure > Cloud Zones.
  2. Click the cloud zone that was added for your vCenter Server instance and enter the values.
    The Cloud Zone configuration page with sample values.
    Setting Sample Value
    Account / region vCenter Account / data center name
    Name vCenter Server Cloud Zone

    This value cannot be changed after you create it. If you want to configure a different data center for a different vCenter Server, you must create a new cloud zone where you can select the account/region.

    Description All vCenter Server compute resources for development.
    Policy

    Default

    Don't forget to consult the help if you have questions about a field value.

    Remember that all values are only examples. Your zone specifics will be specific to your environment.

  3. Click the Compute tab and verify that the compute resources are all present.

    If you need to exclude one, switch to Manually select compute and add only the ones you want to include in the cloud zone.


    The Cloud Zone Compute tab with the include menu expanded.
  4. Click Save.
  5. Repeat the process for any additional cloud zones, but you must ensure unique zone names.

Step 3: Configure the possible resources that are available for the account/region

You added the account/region to the cloud zone. Now you define the possible machine sizes (flavor mappings), image mappings, network profiles, and storage profiles for the cloud account. The mapping and profile definitions are evaluated for a match when you deploy a cloud template, ensuring that the workload includes the appropriate machine size (flavor), image, networks, and storage.

  1. Configure the flavor mappings for the account/regions.

    Flavors are sometimes referred to as t-shirt sizing. Depending on how your cloud template is configured, the applied flavor mapping determines the number of CPUs and memory.

    For more information about flavor mappings, see Learn more about flavor mappings in vRealize Automation.

    1. Select Infrastructure > Configure > Flavor Mappings.
    2. Click New Flavor Mapping and enter values that define small, medium, and large machines.

      Remember, these are sample values. You must select relevant account/regions and define the sizing.


      The Flavor Mapping configuration page with sample values for "small."
      Setting Sample Value
      Flavor name small
      Account/region

      CPU value

      Memory value

      vCenter Account / data center

      2

      1 GB

    3. Click Create.
    4. To create additional sizes, configure medium and large flavor mappings for the account/region.
      Setting Sample Value
      Flavor name

      Account/region

      CPU value

      Memory value

      medium

      vCenter Account / Datacenter

      4

      2 GB

      Flavor name

      Account/region

      CPU value

      Memory value

      large

      vCenter Account / Datacenter

      8

      4 GB

  2. Configure the image mappings for the account/regions.

    The images are the operating system for machines in the cloud template. When you are working with vCenter Server images, you select vCenter templates.

    For more information about image mappings, see Learn more about image mappings in vRealize Automation.

    1. Select Infrastructure > Configure > Image Mappings.
    2. Click New Image Mapping and search for the images for the account/region.

      Remember, these are sample values. You must select relevant images that were discovered in your account/region.


      The Image Mapping configuration page with sample values for centos.
      Setting Sample Value
      Image name centos
      Account/region vCenter Account
      Image centos7
    3. Click Create.
    4. Repeat the process to create additional image mappings. For example, an ubuntu mapping for the account/region.
  3. Configure network profiles.

    Network profiles define the networks and network settings that are available for an account/region. The profiles must support the target deployment environments.

    This task provides the minimum configuration information for success. If you want more information about network profiles, start with Learn more about network profiles in vRealize Automation.

    1. Select Infrastructure > Configure > Network Profile.
    2. Click New Network Profile and create a profile for the vCenter Account / Datacenter account/region.
      The Network Profile Summary tab with sample values.
      Setting Sample Value
      Account/region vCenter Account / Datacenter
      Name Network Profile
      Description Networks for development teams.
    3. Click the Networks tab and click Add Network.
      The Network Profile Networks tab with the table populated.
    4. Select the NSX networks that you want to make available for the application development team.

      In this example, we had an NSX-T network named DevProject-004.

    5. Click the Network Policies tab and create a policy.
      The Network Provides Policies tab with values selected.
      Setting Sample Value
      Isolation policy None
      Tier-0 logical router Tier-0-router
      Edge cluster EdgeCluster
    6. Click Create.
  4. Configure storage profiles.

    Storage profiles define the disks for an account/region. The profiles must support the target deployment environments.

    If you want more information about storage profiles, see with Learn more about storage profiles in vRealize Automation.

    1. Select Infrastructure > Configure > Storage Profile.
    2. Click New Storage Profile and create a profile for the vCenter Server/Datacenter account/region.

      Unless specified in the table, keep the default values.


      The Storage Profile configuration page with values selected.
      Setting Sample Value
      Account/region vCenter Account / Datacenter
      Name Storage Profile
      Datastore/cluster Selected a datastore with sufficient capacity and that is accessible to all the hosts.
      Preferred storage for this region Select the check box.
    3. Click Create.

Step 4: Create a project

This is where you really begin thinking about the project goals.
  • What users need access to the compute resources so that they can create and deploy an application cloud template? For more information about what the different project roles can see and do, see Organization and service user roles in vRealize Automation.
  • Will the members of the project be creating applications that go from development to production? What are the necessary resources?
  • What cloud zones do they need? What priority and limits should be placed on each zone for the project?

For this tutorial, we are going to support the Development team as they create and extend an in-house software application.

This task provides the minimum configuration information for success. If you want more information about projects, start with Learn more about Cloud Assembly projects.

  1. Select Infrastructure > Administration > Projects.
  2. Click New Project and enter the name Development Project.
  3. Click the Users tab, and then click Add Users.

    You are not required to add users at the time. But if you want other users to work with cloud templates, they must be a member of the project.

  4. Enter email addresses to add users as project members or administrators, depending on what permissions you want each individual to have.
    The Projects Add Users dialog box that is accessed on the Users tab.
  5. Click Provisioning and click Add Zones > Cloud Zone.
  6. Add the cloud zones that the users can deploy to.

    You can also set resource limits for the cloud zone in the project. In the future, you can set different limits for other projects.


    The Projects Add Cloud Zone dialog box that is accessed on the Provisioning tab.
    Project Cloud Zone Setting Sample Value
    Cloud Zone vCenter Account Cloud Zone
    Provisioning priority 1
    Instance limit 5
  7. Add any additional cloud zones to the project.
  8. Click Create.
  9. To verify that the project was added to the cloud zone, select Infrastructure > Configure > Cloud Zones and open the vCenter Account Zone cloud Zone card so that you can examine the Projects tab. You should see the Development Project.

Step 5: Design and deploy a basic cloud template

You design and deploy the cloud template to ensure that your infrastructure is properly configured to support the template. Later you can build on the template as you create an application that meets your project needs.

The best way to build a cloud template is component-by-component, verifying that it deploys between each change. This tutorial starts with a simple machine and then iteratively adds more resources.

The examples in this procedure use the YAML code editor. It is an easier way of providing you with code snippets. However, if you prefer a use dialog box-driven user interface, click Inputs.

There is so much more that you can do with cloud templates than is provided in this tutorial. If you want more information, start with Designing your Cloud Assembly deployments.

This tutorial uses vSphere and NSX resource types. These resource types can be deployed only on vCenter Server cloud account endpoints. You can also use the cloud agnostic resource types to create cloud templates that can be deployed on any endpoint. For an example of how to configure the infrastructure and design the template for any endpoint, see Tutorial: Setting up and testing multi-cloud infrastructure and deployments in Cloud Assembly.

Video icon. The link to the video is in the following sentence.For a video that illustrates the basic steps in this procedure, see How to design and deploy a basic cloud template.

  1. Select Design > Cloud Templates.
  2. Select New From > Blank Canvas.
  3. Enter the Name Development Template, select the Project Development Project, and click Create.
  4. Add a vSphere machine to the design canvas, test, and deploy.
    The cloud template design canvas with arrow from the vSphere machine to canvas and then highlighting the YAML.
    1. From the resource type pane, drag a vSphere Machine to the canvas.

      Notice that the Code pane shows the YAML for the machine, with and empty value for image and predefined CPU and memory properties. You are going to make this template able so support flexible sizing.

    2. To select an image value, put your pointer between the single quotes for image and select centos from the list of images that you configured.

      Remember, these are sample values. If you did not configure a centos image, select an image that you did configure.

    3. Create a line below the image property and enter or select flavor, then select the small from the list.
    4. Delete cpuCount and totalMemory.
      Your YAML should look similar to this example.
      formatVersion: 1
      inputs: {}
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: small
    5. Click Test.
      Test allows you to validate the syntax and placement of your cloud template. A successful test does not mean that you can deploy the template without errors.
      The test results dialog box showing a successful test.

      If the test fails, click Provisioning Diagram and look for the failure points. For more information about using the diagram to troubleshoot, see Test a basic cloud template.

    6. Click Deploy.
    7. Enter Deployment Name as DevTemplate - machine and click Deploy.

      You can track the progress of the deployment on the DevTemplate deployment details page or on the Deployments page. Select Resources > Deployments.

      If the deployment fails, you can troubleshoot the problem and revise your template. See What can I do if a Cloud Assembly deployment fails.

      A successful deployment looks similar to this example on the Deployments page.
      Deployment details Topology tab showing a singe machine.
  5. Version the template and add a network.

    Versioning a cloud template is required to make it available in the Service Broker catalog, but it is useful to have a good version to revert to during development.

    1. Open the template in the design canvas.
    2. Click Version, enter a Description similar to Simple deployable machine, and click Create.
    3. From the resource type pane, drag an NSX Network resource type to the canvas.
    4. Connect the machine to the network.
      Click the small circle on the machine component and drag the connection to the network.
      The cloud template design canvas with the connector circled and the connection line not yet connected.
      Notice that the YAML now looks similar to this example.
      formatVersion: 1
      inputs: {}
      resources:
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: small
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks: []
        Cloud_NSX_Network_1:
          type: Cloud.NSX.Network
          properties:
            networkType: existing
    5. Click Test to validate the template.
    6. Click Deploy.
    7. Enter the name DevTemplate - machine - network and click Deploy.
    8. Track the progress and review the successful deployment.
  6. Version the template and add data disk.
    1. Open the template in the design canvas.
    2. Version the template.

      Enter Machine with existing network as the description.

    3. From the resource type pane, drag an vSphere Disk resource type to the canvas.
    4. Connect the disk to the machine.
      Cloud template design canvas with a machine connected to the network and the storage connected to the machine.
      Notice that the YAML now looks similar to this example.
      formatVersion: 1
      inputs: {}
      resources:
        Cloud_vSphere_Disk_1:
          type: Cloud.vSphere.Disk
          properties:
            capacityGb: 1
        Cloud_vSphere_Machine_1:
          type: Cloud.vSphere.Machine
          properties:
            image: centos
            flavor: small
            networks:
              - network: '${resource.Cloud_NSX_Network_1.id}'
            attachedDisks:
              - source: '${resource.Cloud_vSphere_Disk_1.id}'
        Cloud_NSX_Network_1:
          type: Cloud.NSX.Network
          properties:
            networkType: existing
    5. Test the template.
    6. Deploy the template using the name DevTemplate - machine - network - storage.
    7. Track the progress and review the successful deployment.
    8. Version the template.

      Enter Machine with existing network and storage disk as the description.

      This final version ensures that you can add a working template to the Service Catalog.

Tutorial results

You completed the workflow that configured Cloud Assembly as a working system. You are now familiar with the following concepts.

  • Cloud accounts are the credentials that connect Cloud Assembly to your cloud vendor endpoints.
  • Cloud zones are the selected compute resources in account/regions that you then assign to different projects based on the project needs and your goals for managing costs.
  • Infrastructure resources are definitions of resources associated with account/regions that are used in cloud templates.
  • Projects are how you give your users access to the cloud zones based on the project's application development goals.
  • Cloud templates are the definitions of your application workloads that you iteratively develop and deploy.

This tutorial is the foundation of your Cloud Assembly development experience. You can use this process to build your infrastructure and mature your cloud template development skills.