As a cloud administrator, you want to automate the deployment process for a project so that when the cloud template designers are creating and deploying templates, vRealize Automation Cloud Assembly does the work for you. For example, the workloads are deployed with a particular custom machine naming pattern, the machines are added to a specific Active Directory organizational unit, and specific DNS and IP ranges are used.

By automating the process for the project deployments, you can more easily manage multiple projects across various data centers and cloud environments.

You are not required to complete all of the tasks provided here. You can mix and match any of these tasks, depending on your management goals.

Before you begin

This tutorial requires you to have your infrastructure configured and to have successfully deployed a cloud template with a machine and a network. Verify that the following are already configured on your system.

Customize the machine names

The goal of this task is to ensure that the deployed machines for the Development project are named based on the costcenter for the project, the resource type selected at deployment time, and incremented numbers to ensure uniqueness. For example, DevProject-centos-021.

You can adapt this example to your naming requirements.

For more about projects, see Adding and managing vRealize Automation Cloud Assembly projects.

Video icon. The link to the video is in the following sentence. For a video that illustrates this custom naming example, see How to create a custom naming template for deployments.

  1. Select Infrastructure > Projects.
  2. Select an existing project or create a new one.

    For this tutorial, the project name is Development Project.

  3. Click Create.
  4. On the Projects page, click the project name on the tile so that you can configure the project.
  5. Click the Users tab and add the users who are members of this project.
  6. Click the Provisioning tab.
    1. In the Zones section, click Add Zone and add the possible cloud zones where the workloads are deployed for this project.
    2. In the Custom Properties section, add a custom property with the name costCenter and the value DevProject.
      The Project provisioning tab showing the samples values for custom properties and custom naming.
    3. In the Custom Naming section, add the following naming template.
      ${resource.costCenter}-${resource.installedOS}-${###}

      The ${resource.installedOS} is based on the operating system selected when you deploy the cloud template.

  7. Click Save.
  8. Update the cloud template with an input value for the operating system type.

    Input values are the direct way that you can customize the deployment request form for users and simplify your development process. By creating input values, you can use a single cloud template to deploy workloads with different configurations. For example, size or operating system.

    This example uses the Development Template from a previous tutorial. See Step 5: Design and deploy a basic cloud template.

    1. Select Design and open the Development Template.
    2. In the Code pane, update the YAML with the following changes.
      • In the Inputs section, add installedOS.

        In the next step you can see that installedOS input is also used to specify the image. When you add the strings in the enum section, the values, in this example they are centos and ubuntu, must match the image names that you defined in Infrastructure > Configure > Image Mappings. For example, if your image mapping name is CentOS rather than centos, you should use CentOS in the inputs section.

        inputs: 
          installedOS:
            type: string
            title: OS Type
            description: Select the operating system.
            enum: 
              - centos
              - ubuntu
        
      • In the Cloud_vSphere_Machine_1 section, update the image to an installedOS input parameter (${input.installedOS}) and add an installedOS custom property with the same input parameter.
        resources:
          Cloud_vSphere_Disk_1:
            type: Cloud.vSphere.Disk
            properties:
              capacityGb: 1
          Cloud_vSphere_Machine_1:
            type: Cloud.vSphere.Machine
            properties:
              image: ${input.installedOS}
              installedOS: ${input.installedOS}
              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
    3. Click Deploy and enter the name Custom name deployment test.
    4. Click Next.
    5. Select the centos operating system from the drop-down menu.
      The deployment inputs section of the Deploy dialog box. The inputs include the drop-down menu of options.
    6. Click Deploy.
  9. Track the progress and review the successful deployment.
    The machine name in this example is DevProject-centos-026. Just a reminder, this example is based on the tutorial referenced at the beginning of this task.
    Deployment details Topology tab showing the machine custom name.

Create Active Directory machine records

When you provision a workload, you can create machine records in Active Directory. By configuring vRealize Automation Cloud Assembly to perform this task automatically for a project deployments, you have lightened your own workload as the cloud administrator.

  1. Add an Active Directory integration.
    1. Select Infrastructure > Connections > Integrations.

      These steps cover the basic Active Directory configuration that is related to this AD machine records tutorial. For more about the Active Directory integration, see How do I create an Active Directory integration in vRealize Automation Cloud Assembly.

    2. Click Add Integration and click and click Active Directory.
      The Active Directory Summary tab showing the Base DN values of ou=AppDev,dc=cmbu,dc=local.
    3. Enter the name that you are using for this integration.
    4. Enter the LDAP host / IP and the associated credentials.
    5. Enter the Base DN.

      In this tutorial the example is ou=AppDev,dc=cmbu,dc=local. AppDev is the parent OU for the computer OU that you will add for the project.

    6. Click Add.
  2. Add the project to the integration.
  3. In the Active Directory integration, click the Projects tab and click Add Project.
    The Active Directory integration Add Projects dialog box showing the Relative DN value of ou=AppDev-Computers.
    1. Select the App Development project.
    2. Enter the relative DNs. For example, OU=AppDev-Computers.
    3. Leave the Overrides and Ignores switches turned off.

      This procedure is focused on automating the process for a project. It is not about customizations that you can do in templates.

    4. Click Add.
  4. To save your changes to the integration, click Save.
  5. Deploy a cloud template for the project and verify that the machine added to the correct Active Directory OU.

Set your network DNS and internal IP range

Add or update a network profile to include your DNS servers and internal IP ranges.

You must have already created a cloud account for vSphere, NSX-V, or NSX-T. See Tutorial: Setting up and testing vSphere infrastructure and deployments in vRealize Automation Cloud Assembly or Adding cloud accounts to vRealize Automation Cloud Assembly.

  1. Select Infrastructure > Configure > Network Profiles.
  2. Select an existing profile or create one.
  3. On the Summary tab, select an Account/region and enter a name.

    For this tutorial, the network profile name is Network Profile.

  4. Add networks.
    1. Click the Networks tab.
    2. Click Add Network.
    3. Add one or more NSX or vSphere networks.
    4. Click Add.
  5. Configure the DNS servers.
    1. In the networks list on the Networks tab, click the network name.
      Networks tab with the network name highlighted.
    2. Enter the DNS server IP addresses you want this network to use.
      The network configuration dialog box displaying the DNS server and DNS search domains with sample data. The signpost help is open for DNS servers as a reminder about the in-product user assistance.
    3. Click Save.
  6. Specify the IP range for the network.
    1. In the networks list, select the check box next to the network name.
      A network profile with the Networks tab selected. A network is selected and the Manage IP Ranges button is highlighted.
    2. Click Manage IP Ranges.
    3. In the Manage IP Ranges dialog box, click New IP Range.
      New IP Range dialog box. Includes sample data from this task.
    4. Enter a name.

      For example, DevProject Range.

    5. To define the range, enter the Start IP address and End IP address.
    6. Click Add.
    7. Add additional ranges or click Close.
  7. Add the cloud zone containing the associated network account/region that you configured to your Development project.
  8. Deploy a cloud template for the project and verify that the machine is provisioned within the specified IP range.