Deploying your first VNF with TCA

From NSX Ninja
Jump to: navigation, search

Summary

I have shown you how to set up the complete infra with TCA and VCD here.

In this article, I will show you how to deploy your first VNF.

Configuration Steps

There are two ways to upload the application VMs.

  1. Using vCenter Server
    1. Import the OVA's in vCenter Server, not power them on and convert them to a Template
  2. Using VCD
    1. Import the files into a catalog

I am going to show you both ways.

  • STEP 1: Upload OVA Virtual Machines using vCenter Server (Templates)
  • STEP 2: Upload OVA Virtual Machines using VCD Catalogs
  • STEP 3: Upload the TOSCA template to TCA
  • STEP 4: Instantiate the VNF (using the vSphere Templates)
  • STEP 5: Instantiate your first VNF (using the VCD Catalog)

The application that I am onboarding will consist out of three Virtual Machines:

  • centos-small-lb
  • centos-small-app
  • centos-small-db

I will upload/deploy copies of the same VM in vSphere and VCD, and even though you only need them in one place I will show you how to deploy them from both places.

STEP 1: Upload OVA Virtual Machines using vCenter Server (Templates)

I have deployed each OVA (lb, app and db) using vCenter Server:

NFV2-STEP-01-1.png

When the deployment was done I have converted the VM's to a Template:

NFV2-STEP-01-2.png

This resulted that all three Virtual Machines are now Template objects inside the vCenter Server.

NFV2-STEP-01-3.png

STEP 2: Upload OVA Virtual Machines using VCD Catalogs

I have also uploaded the same VMs using the catalog feature inside VCD.

You need to log in as the Organization "administrator" account of the Organization.

Inside the Organization Portal select "Libraries" and create a new "Catalog"

NFV2-STEP-02-1.png

Provide a name for the new "Catalog".

NFV2-STEP-02-2.png

Verify if the "Catalog" is correctly created without any errors.

NFV2-STEP-02-3.png

Click on "vApp Templates" and create a new vApp Template.

NFV2-STEP-02-4.png

Select the OVA you want to upload.

NFV2-STEP-02-5.png

Review the details.

NFV2-STEP-02-6.png

Provide a name for the vApp Template and specify a catalog where you want to place this template in. This is the catalog that I have just created.

NFV2-STEP-02-7.png

Complete the vApp Template configuration.

NFV2-STEP-02-8.png

Verify if the vApp Template is correctly created without any errors.

NFV2-STEP-02-9.png

Do the same with the other two remaining OVA Templates, as you have now only created a vApp Template for the "centos-small"lb" VM.

When all vApp Templates are created for all VMs the screen should look like this:

NFV2-STEP-02-10.png

STEP 3: Upload the TOSCA template to TCA

Now that the VM Templates are "in place" you can start uploading the TOSCA template to the TCA Manager.

Onboard a network function

Click on "Catalog" and choose "Onboard Network Function".

NFV2-STEP-03-1.png

Provide a name for the new "Network Function" and select the CSAR file.

NFV2-STEP-03-2.png

After you have clicked on "upload" a Topology will be presented. Now you are ready to instantiate a VNF based on this Network Function/Topology.

NFV2-STEP-03-3.png

STEP 4: Instantiate the VNF (using the vSphere Templates)

Select the Network Function you want to instantiate a VNF form and click on "instantiate".

NFV2-STEP-04-1.png

Provide a name for the new "VNF" and select a "Cloud" (Organization VDC) and the "Compute Profile".

I have NOT enabled the "Use vApp Template" switch because I want to instantiate from the vSphere Template VMs.

NFV2-STEP-04-2.png

This is how the screen will look like when you need to select a "Cloud".

NFV2-STEP-04-3.png

This is how the screen will look like when you need to select a "Compute Profile".

NFV2-STEP-04-4.png

The networks for APP and DB will be created automatically as an "isolated" network. The Loadbalancer VM will need an external connection that you need to specify.

NFV2-STEP-04-5.png

I have created the "vcd-02-vmware-web" network that is mapped to the "Seg-Web"Logical Switch/Segment on NSX-T so I will select this network.

NFV2-STEP-04-6.png

When the external network is selected your screen will look like this:

NFV2-STEP-04-7.png

Workflows tab: The external IP address for the Loadbalancer needs to be specified manually. In my example, I will use 192.168.1.211.

NFV2-STEP-04-8.png

Loadbalancer tab: The external IP address for the Loadbalancer needs to be specified manually here as well and the Prefix and the Gateway. All other fields/tabs are populated automatically based on the code in the CSAR.

NFV2-STEP-04-9.png

Complete the new VNF instantiation.

NFV2-STEP-04-10.png

Checking the Deployed VNF

Verify if the VNF is correctly instantiated without any errors. The state is "Completed"

NFV2-STEP-04-11.png

Test the application reachability

Verify if the Application is correctly reachable without any errors using the IP address I have specified (192.168.1.211).

NFV2-STEP-04-12.png

STEP 5: Instantiate your first VNF (using the VCD Catalog)

Select the Network Function you want to instantiate a VNF form and click on "instantiate".

Provide a name for the new "VNF" and select a "Cloud" (Organization VDC) and the "Compute Profile".

this time I HAVE enabled the "Use vApp Template" switch because I want to instantiate from the VCD Catalog, and I have selected the VCD Catalog name as well.

NFV2-STEP-05-1.png

I have NOT enabled the "Use vApp Template" switch because I want to instantiate from the vSphere Template VMs.

NFV2-STEP-05-2.png

I have created the "vcd-02-vmware-web" network that is mapped to the "Seg-Web"Logical Switch/Segment on NSX-T so I will select this network.

NFV2-STEP-05-3.png

When the external network is selected your screen will look like this:

NFV2-STEP-05-4.png

Workflows tab: The external IP address for the Loadbalancer needs to be specified manually. In my example, I will use 192.168.1.210.

NFV2-STEP-05-5.png

Loadbalancer tab: The external IP address for the Loadbalancer needs to be specified manually here as well and the Prefix and the Gateway. All other fields are populated automatically based on the code in the CSAR.

NFV2-STEP-05-6.png

All other fields/tabs are populated automatically based on the code in the CSAR.

NFV2-STEP-05-7.png

All other fields/tabs are populated automatically based on the code in the CSAR.

NFV2-STEP-05-8.png

Complete the new VNF instantiation.

NFV2-STEP-05-9.png

Checking the Deployed VNF

Verify if the VNF is correctly instantiated without any errors. The state is "Processing".

NFV2-STEP-05-10.png

You can follow along and see if new VMs are being created r of already created in the vCenter Server.

NFV2-STEP-05-11.png

You can look at the tasks in the vCenter Server to verify the (successfully) completed tasks.

NFV2-STEP-05-12.png

You can also follow along in vCloud Director and verify if the app and db isolated networks are created.

NFV2-STEP-05-13.png

You can also follow along in NSX-T Manager and verify if the app and db isolated networks are created.

NFV2-STEP-05-14.png

This time you see that the state has ended in "Error"

NFV2-STEP-05-15.png

A closer look at the error shows that there is something wrong with the Credentials.

NFV2-STEP-05-16.png

I decided to do a "rollback" of this VNF and delete all the VMs and Networks that were created.

NFV2-STEP-05-17.png

The issue is that VCD "turns on" Guest Customization for the vApp Templates you created and there is no way to turn this off during the creation of the vApp Templates.

What you CAN do is create a VM from the vApp Template and edit the Guest Customization (turn it off) and upload it as a new vApp Template in the Catalog with a new name (or use a new Catalog. This procedure is shown below.

Workaround to make VCD Catalog Items work

Add a new vApp from Catalog.

NFV2-STEP-05-18.png

Select the Organization VDC.

NFV2-STEP-05-19.png

Select the vApp Template that you want to use for the import.

NFV2-STEP-05-20.png

Provide a name.

NFV2-STEP-05-21.png

Configure the Resources (leave the defaults in).

NFV2-STEP-05-22.png

Configure the Compute Policies (leave the defaults in).

NFV2-STEP-05-23.png

Customize the hardware (leave the defaults in).

NFV2-STEP-05-24.png

Customize Networking (leave the defaults in).

NFV2-STEP-05-25.png

Customize the Properties (leave the defaults in, so leave everything blank)).

NFV2-STEP-05-26.png

Complete the vApp from Template creation.

NFV2-STEP-05-27.png

Do the same with the other two remaining vApps, as you have now only created a vApp for the "centos-small"lb" VM. Make sure you DO NOT POWER ON any of the newly created VMs.

When all vApp/VMs are created for all VMs the screen should look like this:

NFV2-STEP-05-28.png

Now you need to go into the vApp and go to the Virtual Machine and click on the VM to DISABLE the Guest Customization.

NFV2-STEP-05-29.png

Click on "Edit".

NFV2-STEP-05-30.png

Uncheck the "Enable guest customization" checkbox.

NFV2-STEP-05-31.png

Verify if the Guest customization is disabled now.

Do the same for the other vApps/VMs.

NFV2-STEP-05-32.png

Before I am going to convert the vApps/VMs back into vApp Templates and will first create a new Catalog, as I like to keep things organized and separated.

NFV2-STEP-05-33.png

Provide a name for the new "Catalog".

NFV2-STEP-05-34.png

Verify if the Catalog is correctly created without any errors.

NFV2-STEP-05-35.png

Create a template from the vApp/VM.

NFV2-STEP-05-36.png

Add the new vApp Template to the new Catalog.

NFV2-STEP-05-37.png

Do the same for all vApps/VMs.

When you look at the Catalog you see that the amount of vApp Templates is now set to "3". So our new Catalog is correctly populated with our new vApp Templates with the Gues Customization Disabled.

NFV2-STEP-05-38.png

Before you can instantiate a new VNF using the catalog I need to change the code in the CSAR file to point to the new "v2" vApps/VMs that are contained in the new VCD Catalog.

You can edit the existing CSAR, Save it as DRAFT, and save it as a new template with a new name.

NFV2-STEP-05-39.png

Checking the (Re)Deployed VNF

After following the same steps from STEP 5 I have now a new VNF that is in the "Complete" state using the vApp Templates from the new VCD Catalog.

NFV2-STEP-05-00.png

Test the application reachability

This time I have used the external IP address of 192.168.1.212 for the Load Balancer and you can see that the Application is reachable.

NFV2-STEP-05-40.png

In the next article, I will show you how you can scale the VNF by adding a second application VM/Server behind the load balancer.

Summary of deployed VNFs

In the figure below you will see a summary of all the deployed VNFs and what VNF used what Template Sources.

NFV2-SUMM-1.png

In this next article, I will show you how to scale this VNF using TCA.

Related Articles