Installing Cisco VTS

The following sections provide details about installing VTS on a Linux-OpenStack environment or a VMware-based environment. Ensure that you review the Prerequisites chapter, before you begin installing VTS.

Installing Cisco VTS in a Linux - OpenStack Environment

Installing Cisco VTS in an OpenStack environment involves:

Installing the VTC VM

You can install the VTC VM using either the automatic or manual configuration option.

To install the VTC VM using an ISO file (Auto Configuration), see Installing VTC VM - Automatic Configuration Using ISO File

To install VTC VM using the virt-manager application (Manual Configuration), see Installing VTC VM - Manual Configuration Using virt-manager Application

To install VTC VM using VNC (Manual Configuration), see Installing VTC VM - Manual Configuration using VNC


Note


If you need to access the VTC VM's console using virt-manager, VNC, or SPICE, it may be necessary to manually switch to tty1 using the CTRL+ALT+F1 key combination. After connecting to the VM's console, if the output shows a blank screen, then you must manually switch to tty1.

Installing VTC VM - Automatic Configuration Using ISO File

To enable configuration using ISO file, the administrator needs to create a text file with the VM settings, wrap it into an ISO file, and then attach the ISO to the VM's CD drive.


    Step 1   Connect to the controller node via SSH, and copy the vtc.qcow2 file to /var/lib/libvirt/images/ folder.
    Step 2   Copy the vtc.sample.xml file to your controller. A sample XML file is available at Sample XML File—VTC Installation.
    Step 3   Create a file called config.txt. The contents of the file is given in the below example:
    Hostname=vtc
        ManagementIPv4Method=Static
        ManagementIPv4Address=1.1.1.2
        ManagementIPv4Netmask=255.255.255.0
        ManagementIPv4Gateway=1.1.1.1
        ManagementIPv6Method=Static
        ManagementIPv6Address=1::2
        ManagementIPv6Netmask=64
        ManagementIPv6Gateway=1::1
        UnderlayIPv4Method=Static
        UnderlayIPv4Address=2.2.2.2
        UnderlayIPv4Netmask=255.255.255.0
        UnderlayIPv4Gateway=2.2.2.1
        UnderlayIPv6Method=Static
        UnderlayIPv6Address=2::2
        UnderlayIPv6Netmask=64
        UnderlayIPv6Gateway=2::1
        DNSv4=3.3.3.3
        DNSv6=3::3
        Domain=cisco.com
        NTP=1.1.1.1
        vts-adminPassword=cisco123
        AdministrativeUser=admin
        AdministrativePassword=cisco123
    
    
    Note   
    • The config.txt file must have a blank line at the end.
    • If you are using IPv6, all parameters are required. If you are not using IPv6, you need not specify the following parameters:
      • ManagementIPv6Address

      • ManagementIPv6Netmask

      • ManagementIPv6Gateway

      • UnderlayIPv6Address

      • UnderlayIPv6Netmask

      • UnderlayIPv6Gateway

      • DNSv6

    In this file:

    • Hostname—The hostname of the VM
    • ManagementPv4Method—Whether to use DHCP, Static, or None IPv4 addressing for the management interface (eth0)
    • ManagementIPv4Address—Management IPv4 address of the VM (required only for static addressing)
    • ManagementIPv4Netmask—Management IPv4 netmask of the VM (required only for static addressing)
    • ManagementIPv4Gateway—Management IPv4 gateway of the VM (required only for static addressing)
    • ManagementPv6Method—Whether to use DHCP, Static, SLAAC, or None IPv6 addressing for the management interface (eth0)
    • ManagementIPv6Address—Management IPv6 address of the VM (required only for static addressing)
    • ManagementIPv6Netmask—Management IPv6 netmask of the VM (required only for static addressing)
    • ManagementIPv6Gateway—Management IPv6 gateway of the VM (required only for static addressing)
    • UnderlayPv4Method—Whether to use DHCP, Static, or None IPv4 addressing for the underlay interface (eth1)
    • UnderlayIPv4Address—Underlay IPv4 address of the VM (required only for static addressing)
    • UnderlayIPv4Netmask—Underlay IPv4 netmask of the VM (required only for static addressing)
    • UnderlayIPv4Gateway—Underlay IPv4 gateway of the VM (required only for static addressing)
    • UnderlayPv6Method—Whether to use DHCP, Static, SLAAC, or None IPv6 addressing for the underlay interface (eth1)
    • UnderlayIPv6Address—Underlay IPv6 address of the VM (required only for static addressing)
    • UnderlayIPv6Netmask—Underlay IPv6 netmask of the VM (required only for static addressing)
    • UnderlayIPv6Gateway—Underlay IPv6 gateway of the VM (required only for static addressing)
    • DNSv4—DNS IPv4 address (required only for static addressing or if DHCP does not send the option) and may contain multiple entries if enclosed in double quotes (")
    • DNSv6—DNS IPv6 address (required only for static and SLAAC addressing or if DHCP does not send the option) and may contain multiple entries if enclosed in double quotes (")
    • Domain—DNS search domain (required only for static addressing or if DHCP does not send the option)
    • NTP—NTP IPv4 address, IPv6 address, or FQDN (required only for static addressing or if DHCP does not send the option)
    • vts-adminPassword—Password for the vts-admin user
    • AdministrativeUser—New administrative user for login via SSH
    • AdministrativePassword—Password for the new administrative user
    Step 4   Use mkisofs to create an ISO file. For example:
    mkisofs -o config.iso config.txt
    Step 5   Create the VTC VM using following command:
    virsh create vtc.sample.xml

    Installing VTC VM - Manual Configuration Using virt-manager Application

    To install the VTC VM, configuring the VM, manually, using the virt-manager application:


      Step 1   Connect to the controller node via SSH, and copy the vtc.qcow2 file to /var/lib/libvirt/images/ folder.
      Step 2   Copy the vtc.sample.xml file to your controller. Modify it as per your setup.
      Step 3   Create the VTC VM using following command:
      virsh create vtc.sample.xml
      Step 4   Run the command:
      virsh list --all

      It should display:

      Id					Name					State
      --------------------------------------------------
      2 VTC running

      Step 5   Start virt-manager. Run:
      virt-manager
      		  
      Step 6   Once virt-manager window opens, click on the VTC VM to open up the VTC VM console.

      In the console you get the installation wizard which takes you through the steps to configure VTC VM for the first time.

      Step 7   Enter the following:
      Note   

      For items that take multiple values, such as DNS and NTP, each value must be separated by a space.

      • VTS Hostname

      • DHCP / Static IP configuration for static IP

      • Management IP address for VTC—This is the management IP address.

      • Management IP Netmask

      • Management Gateway address

      • DNS Address

      • DNS Search domain

      • Underlay IP address—This is the IP address for internal network.

      • Underlay IP Netmask

      • Underlay IP Gateway

      • NTP address—Can be same as gateway IP address.

      • Password change for user vts-admin—Enter the default user vts-admin password. The vts-admin user is used for password recovery and to revisit a configuration screen if you make a mistake or need to change the information. If you log in to the VTC VM using vts-admin username and password again, you will get the same dialog to go through the VTC VM setup again.

      • Administrator User—Enter administrative username and password. This username and password are used to login to the VM via SSH.

      • Password for administrator user

      VTC VM reboots at this time. Wait for two minutes for the VTC VM to be up. You can ping the IP address given for VTC VM in the setup process to verify whether the VTC VM is up.

      Step 8   SSH into VTC VM using the IP address, administrative username/password given in the setup process (not vts-admin user).

      Installing VTC VM - Manual Configuration using VNC

      If the server where VTC is to be installed resides on a remote location with network latency or low bandwidth, you may want to opt for the use of VNC in order to gain graphical console access to the VTC VM, and manually configure the VM. To do this:


        Step 1   Connect to the controller node via SSH, and copy the vtc.qcow2 file to /var/lib/libvirt/images/ folder.
        Step 2   Copy the vtc.sample.xml file to your controller. Modify it as per your setup. A sample XML file is available at Sample XML File—VTC Installation.
        Step 3   Replace the following sections of the vtc.sample.xml file:
         <graphics type='spice' port='5900' autoport='yes' listen='127.0.0.1'>
              <listen type='address' address='127.0.0.1'/>
            </graphics>

        with the following:

        <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
              <listen type='address' address='0.0.0.0'/>
            </graphics>
        Note    Setting the listen address to 0.0.0.0 allows external clients to connect to the VNC port (5900). You will also need to make sure that iptables configuration (if any) allows inbound TCP port 5900 connections.
        Step 4   Create the VTC VM using following command:
        virsh create vtc.sample.xml

        You should now be able to use a VNC client to connect to the graphics console of the VTC VM to continue with the setup process.

        Step 5   Enter the following:
        Note    For items that take multiple values, such as DNS and NTP, each value must be separated by a space.
        • VTS Hostname

        • DHCP / Static IP configuration for static IP

        • Management IP address for VTC—This is the management IP address.

        • Management IP Netmask

        • Management Gateway address

        • DNS Address

        • DNS Search domain

        • Underlay IP address—This is the IP address for internal network.

        • Underlay IP Netmask

        • Underlay IP Gateway

        • NTP address—Can be same as gateway IP address.

        • Password change for user vts-admin—Enter the default user vts-admin password. The vts-admin user is used for password recovery and to revisit a configuration screen if you make a mistake or need to change the information. If you log in to the VTC VM using vts-admin username and password again, you will get the same dialog to go through the VTC VM setup again.

        • Administrator User—Enter administrative username and password. This username and password are used to login to the VM via SSH.

        • Password for administrator user

        VTC VM reboots at this time. Wait for two minutes for the VTC VM to be up. You can ping the IP address given for VTC VM in the setup process to verify whether the VTC VM is up.

        Step 6   SSH into VTC VM using the IP address, administrative username/password given in the setup process (not vts-admin user).

        Installing OpenStack Plugin

        The OpenStack plugin gets installed when you register the VMM from the Cisco VTS GUI. See Registering OpenStack VMM, for details.


        Note


        Cisco VTS GUI- based VMM Registration is applicable for single-node OpenStack Controller deployments only. For information about installing the plugin and host agent for a Multi-Node OpenStack Controller cluster, seeInstalling Plugin and Host Agent on Multi-Node OpenStack Controller Cluster.


        Registering OpenStack VMM

        You can register the OpenStack VMM using the Cisco VTS GUI.

        If you opt for the guided set up using the Setup wizard, VMM registration is done as part of the wizard flow. See the Using the Setup Wizard section in the Getting Started with Cisco Virtual Topology System chapter in the Cisco VTS User Guide for details.

        If you are not using the Setup wizard, you can register the VMM using the Administration > Virtual Machine Manager UI.


        Note


        If you install an unsupported OpenStack plugin version, you might encounter errors after installation. We recommend that you review the Supported Virtual Machine Managers section before you install the OpenStack plugin.



          Step 1   Go to Administration > Virtual Machine Manager.
          Step 2   Click the Add (+) button.

          The Register VMM page is displayed.

          Step 3   Enter the VMM Details:
          • Name—Name of the VMM.
          • Version —Specify the version from the drop-down.

          • Mode—Whether the VMM has been registered as Trusted or Untrusted.

          • VTF Deployment Mode—If you select openstack-liberty-rhel as the OpenStack version, this option appears. To install VTF in vhost mode, choose vtf-vhost.

          • API Endpoint Details
            • API Protocol:IP Address:Port—VMM service endpoint's IPv4/IP6 address and port.

            • Keystone Protocol:IP Address:Port—Keystone protocol, IP address and port for OpenStack.

            • Openstack Admin Project—Tenant with Administrator privileges in OpenStack. This can be any tenant with Administrator privileges. Any change to this tenant name, username, and passphrase needs to be updated in Cisco VTS for Multi-VMM operations to work properly.

            • Admin User Name—admin user for the admin project in OpenStack.

            • Admin Passphrase—Password of the admin user.

          Step 4   Click Register.

          After the VMM is registered successfully, the Plugin sections opens up.

          Step 5   Select the desired radio button to specify whether you want to Install plug in with Red Hat OSP Director or not. If you select Yes, enter the following details:
          1. Enter:

            OSP Director IP Address

            OSP Director User name

            OSP Director Passphrase
          2. Click Save. The Neutron Servers section opens up.
          3. Click Add (+) to add a Neutron Server. The Add Neutron Server popup is displayed.
          4. Enter the Server IP Address and the Server User Name
          5. Click Save and Install Plugin. You may add more Neutron Servers using the Add (+) option. The Server Plugin Installation status shows whether the installation was a success.
            Note   

            If you had opted not to use OSP Director, you will need to enter the password for the Neutron servers while adding the servers.

            In case the Plugin Installation Status in the Virtual Machine Manager page shows the failure icon, you may choose to edit the VMM using the Edit option and rectify the error. Click the Server Plugin Status icon to view details of the error.


          Installing Host Agent

          You can use the Host Agent while specifying the Virtual Switch type, in Host Inventory.


            Step 1   Go to Inventory > Host Inventory. The Inventory / Host Inventory page appears. The Host Inventory page has two tabs—Virtual Servers and Baremetals. By default, the page displays Virtual Server details.
            Step 2   To view host details on Virtual Servers, select the VMM from the Select VMM drop-down, and select the device from the Select Device drop-down list. The following details are displayed:
            • Host Name

            • IP Address

            • Host Type

            • Associated VMM

            • Virtual Switch

            • Interfaces

            • Installation Status—Shows the installation status.

            • VTF Mode—Displayed on the top left of the table shows the VTF mode you have chosen in the Administration > System Settings window.

            Step 3   Enter the following host details, while adding a new host or while editing the host:
            • Host Name—This is mandatory. Only letters numbers, underscore and dashes are allowed. Requires at lease one letter or number.

            • Host Interface—IPv4/IPv6 address of the host. This is mandatory.

            • Host IP Address

            • Device Port Name

            • User Name

            • Passphrase

            • Host Configuration
              • VMM ID—The VMM ID of the VMM to which you want to associate the host to.

              • Virtual Switch—Select ovs, then check the Install VTS agent on save check box:

            Step 4   Click Save.

            After the installation is complete you can see the green check button under Installation Status.

            Step 5   Specify the physnet type. This is mandatory. You can find this using ovs bridge #sudo ovs-vsctl show | more . By default, it is tenant.
            Step 6   Log in to the compute and check the service is up and running.
            # sudo service neutron-vts-agent status

            Installing Host Agent on Newton OSPD using CLI


              Step 1   Log in to VTC
              Step 2   Go to cd /opt/vts/lib/ansible/playbooks
              Step 3   Create SAMPLE_INVENTORY_OVS.
              Step 4   Install SSH keys. See Setting Up Ansible Install Through an SSH Proxy (for RHEL OpenStack Platform Director).
              sudo ansible-playbook ssh_proxy.yaml -i SAMPLE_INVENTORY_OVS -e ACTION=install -l proxy
              Step 5   Install OVS Host Agent on compute.
              sudo ansible-playbook neutron-compute.yaml -i SAMPLE_INVENTORY_OVS -e ACTION=install

              SAMPLE_INVENTORY_OVS for Newton OSPD with IPV4

              [proxy]
              
              director ansible_ssh_host=172:20:200:18
              
               
              
              # SSH Proxy access parameters. Do not modify the group name
              
              [proxy:vars]
              
              ansible_connection=ssh
              
              ansible_port=22
              
              ansible_ssh_user=stack
              
              ansible_ssh_pass=<password>
              
               
              
              [proxied_hosts:children]
              
              vts_p_hosts_ovs
              
               
              
              # Host specific variable for P hosts with VTS OVS agent
              
              [vts_p_hosts_ovs]
              
              overcloud-controller-0 ansible_ssh_host=172.20.200.5
              
              overcloud-controller-1 ansible_ssh_host=172.20.200.4
              
              overcloud-compute-2 ansible_ssh_host=172:20:200:27
              
               
              
              # Group variables for P hosts with VTS OVS agent
              
              [vts_p_hosts_ovs:vars]
              
              ansible_connection=ssh
              
              ansible_port=22
              
              ansible_ssh_user=heat-admin
              
              ansible_ssh_pass=<password>
              
              VMM_NAME=OSPD_Newton
              
               
              
              # Common group variables
              
              [all:vars]
              
              VTS_IP=172:20:200:20
              
              VTS_USERNAME=admin
              
              VTS_PASSWORD=<password>
              
               
              
              [defaults]
              
              timeout=60
              
               
              
              [ssh_connection]
              
              ssh_args="-C -o ControlMaster=auto -o ControlPersist=600s -o GSSAPIAuthentication=no -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" 

              SAMPLE_INVENTORY_OVS for Newton OSPD with IPV6

              [proxy]
              
              director ansible_ssh_host=2001:420:10e:2010:172:20:100:18
              
              # SSH Proxy access parameters. Do not modify the group name
              
              [proxy:vars]
              
              ansible_connection=ssh
              
              ansible_port=22
              
              ansible_ssh_user=stack
              
              ansible_ssh_pass=cisco123
              
              [proxied_hosts:children]
              
              vts_p_hosts_ovs
              
              # Host specific variable for P hosts with VTS OVS agent
              
              [vts_p_hosts_ovs]
              
              fd41:4c47:94d7:c790:172:23:92:18 ansible_ssh_host=fd41:4c47:94d7:c790:172:23:92:18 ansible_ssh_user=admin
              fd41:4c47:94d7:c790:172:23:92:17 ansible_ssh_host=fd41:4c47:94d7:c790:172:23:92:17 ansible_ssh_user=admin
              fd41:4c47:94d7:c790:172:23:92:43 ansible_ssh_host=fd41:4c47:94d7:c790:172:23:92:43 ansible_ssh_user=admin
              fd41:4c47:94d7:c790:172:23:92:44 ansible_ssh_host=fd41:4c47:94d7:c790:172:23:92:44 ansible_ssh_user=admin
              fd41:4c47:94d7:c790:172:23:92:45 ansible_ssh_host=fd41:4c47:94d7:c790:172:23:92:45 ansible_ssh_user=admin
               
              
              # Group variables for P hosts with VTS OVS agent
              
              [vts_p_hosts_ovs:vars]
              
              ansible_connection=ssh
              
              ansible_port=22
              
              ansible_ssh_user=heat-admin
              
              ansible_ssh_pass=cisco123
              
              VMM_NAME=OSPD_Newton
              
              
              # Common group variables
              
              [all:vars]
              
              VTS_IP=[2001:420:10e:2010:172:20:100:20]
              
              VTS_USERNAME=admin
              
              VTS_PASSWORD=Cisco123!
              
              
              [defaults]
              
              timeout=60
              
              
              [ssh_connection]
              
              ssh_args="-C -o ControlMaster=auto -o ControlPersist=600s -o GSSAPIAuthentication=no -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"


              Uninstalling Host Agent

              To uninstall OVS host agent on Newton OSPD using CLI


                Step 1   Log in to VTC.
                Step 2   Go to: cd /opt/vts/lib/ansible/playbooks
                Step 3   Create SAMPLE_INVENTORY_OVS.
                Step 4   Uninstall SSH keys.
                sudo ansible-playbook ssh_proxy.yaml -i SAMPLE_INVENTORY_OVS -e ACTION=uninstall -l proxy
                Step 5   Uninstall the OVS Host Agent on compute.
                sudo ansible-playbook neutron-compute.yaml -i SAMPLE_INVENTORY_OVS -e ACTION=uninstall 

                Setting Up Ansible Install Through an SSH Proxy (for RHEL OpenStack Platform Director)

                Running ansible playbooks on hosts situated behind an SSH proxy is supported by installing the SSH public key of the user running the ansible script on the target hosts' ssh allowed_hosts file. This is necessary to run the ansible scripts on nodes deployed by the Red Hat OpenStack Platform director. The proxy host and its parameters need to be defined in a separate group in the inventory, named "proxy". Currently only one proxy per OpenStack Platform director domain is allowed, where the OpenStack Platform director domain can be composed of an arbitrary group of nodes.

                An example of a Sample Inventory file:

                    [proxy]
                    undercloud1 ansible_ssh_host=10.194.132.62
                
                     
                
                    # SSH Proxy access parameters. Do not modify the group name
                    [proxy:vars]
                    ansible_connection=ssh
                    ansible_ssh_user=stack
                    ansible_ssh_pass=cisco123
                
                     
                
                    [proxied_hosts:children]
                    neutron_servers
                    vts_v_hosts
                
                     
                
                    [neutron_servers]
                    overcloud2 ansible_ssh_host="NAME/IP of target Neutron server"
                
                     
                
                    [neutron_servers:vars]
                    ansible_ssh_user=heat-admin
                
                     
                
                    [vts_v_hosts]
                    rhel1 ansible_ssh_host="name/IP of target host" host_ip="20.0.87.203" host_netmask_len="24" net_gw="20.0.87.1" underlay_if="ens224" interfaces='["eno16777984", "eno33557248", "eno50336512"]' u_addresses='["11.0.0.0/8"]' vif_type="vhostuser"
                
                     
                
                    [vts_v_hosts:vars]
                    ansible_ssh_user=heat-admin
                The following command will execute the ssh key install on the two nodes in the "neutron_servers" and "vts_v_hosts" groups.
                sudo ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook ssh_proxy.yaml  -i SAMPLE_INVENTORY -e ACTION=install
                Following the SSH key installation, you may run the ansible playbook. For example:
                ansible-playbook vpp.yaml -i SAMPLE_INVENTORY -e ACTION=install -l vts_v_hosts

                Note


                It is important to consider variable precedence and edit or comment out the respective ssh username and password fields from the inventory file. The proxy will always be accessed on the username and password specified under the "proxy" group, while the proxied hosts will be accessed using the credentials defined in their individual group or host settings.

                The inventory file and proxy settings covers only one OpenStack domain. To manage multiple domains, it is necessary to create multiple inventory files, one per domain, reusing the pattern and definitions above.


                Installing Cisco VTS on a VMware Environment

                Installing Cisco VTS on a VMware environment involves:

                Installing VTC VM on ESXi

                To install VTC VM on an ESXi host:


                  Step 1   Connect to the ESXi host using the VMWare vSphere Client.
                  Step 2   In the vSphere Client, select File > Deploy OVF Template. The Deploy OVF Template wizard appears.
                  Step 3   Specify the name and source location, and click Next.
                  Note   

                  You may place vtc.ovf and vtc.vmdk in different directories.

                  Step 4   Select the appropriate host to spawn the VTC VM.
                  Step 5   For VM disk format, use the default disk format settings (that is Thick Provision Lazy Zeroed).
                  Step 6   Map VTC network connectivity to appropriate port-groups on vSwitch/DVS.
                  • vNIC1—Used for VTC network management

                  • vNIC2—Used for VTC connectivity to VTF, VTSR

                  Step 7   Enter the following properties:
                  • Hostname—VTS Hostname.

                  • ManagementIPv4Method—DHCP / Static IP configuration for static IP .

                  • ManagementIPv4Address—Management IP address for VTC. This IP address is used for VTC network management.

                  • ManagementIPv4Netmask—Management IP Netmask

                  • ManagementIPv4Gateway—Management Gateway address

                  • UnderlayIPv4Method—DHCP / Static IP configuration for static IP.

                  • UnderlayIPv4Address—Underlay IP address. This is the IP address for internal network.

                  • UnderlayIPv4Netmask—Underlay IP Netmask.

                  • Underlay IP Gateway—Underlay Gateway IP

                  • DNSv4—IP address of the DNS server.

                  • Domain—The DNS Search domain.

                  • NTPv4—NTP address. Can be same as gateway IP address.

                  • vts-adminPassword—Password for the vts-admin user. Password used to access VTC via SSH for vts-admin account.

                  • AdministrativeUser—The Administrator User. Enter administrative username.
                  • AdministrativePassword—Password for administrator user.

                  Note   

                  admin/admin is used to log into GUI for 1st time. The password will be changed during first time login into GUI


                  Installing vCenter Plugin

                  The vCenter plugin gets installed when you register the VMM from the Cisco VTS GUI.


                    Step 1   Go to Administration > Virtual Machine Manager.
                    Step 2   Click the Add (+) button.

                    The Register VMM page is displayed.

                    Step 3   Enter the VMM Details:
                    • Name—Name of the VMM.
                    • Version —Specify the version from the drop-down.

                    • Mode—Whether the VMM has been registered as Trusted or Untrusted.

                    • API Endpoint Details. This is optional.

                      • API Endpoint Details:

                        • API Protocol:IP Address:Port—VMM service endpoint's IPv4/IP6 address and port.

                        • Datacenter—The name of the datacenter for which Cisco VTS acts as the controller.

                        • Admin User Name—Username of the vCenter VMM.

                        • Admin Passphrase —Password of the vCenter VMM.

                    Step 4   Click Register.

                    After the VMM is registered successfully, the Plugin sections opens up.

                    Step 5  

                    Enter the following in the Plugin details section:

                    • IP Address : Port

                    • Admin User Name

                    • Admin Passphrase

                    Note    If you had entered the API endpoint details, the Plugin details will get populated automatically.

                    Important Notes Regarding VMware vSphere Distributed Switch (vDS)

                    The following points need to be taken care of while you create a vDS.


                    Note


                    • All the ToRs in the inventory should be part of the vDSs.

                    • One vDS can represent one or more ToRs.

                    • All the hosts that are connected to a particular ToR should be part of the same vDS.


                    For Non-vPC Specific Configuration

                    If you are not using vPC on the leaves:
                    • Associate one or more leafs per vDS.

                    • Attach the hosts' data interface to the vDS uplinks.

                      Note


                      See VMware documentation for the detailed procedure.


                    For vPC Specific Configuration

                    If you are using vPC on the leaves:


                      Step 1   Create one vDS switch for one or more vPC pairs.
                      Step 2   Enable enhanced LACP.

                      See VMware documentation for the detailed procedure.

                      Step 3   Create a Link Aggregation Group for each vDS.

                      See VMware documentation for the detailed procedure.

                      Step 4   You may remove the default port group that gets created as it will not be used.

                      Installing VTSR

                      The VTSR VM serves two purposes. It is required to enable VTS High Availability. It also acts as the control plane for the VTF. You need to install VTSR only if you consider enabling High Availability or if you plan to have a VTF in your set up.

                      Installing VTSR involves:

                      Generating an ISO for VTSR

                      To create an ISO for VTSR:


                      Note


                      For an HA installation, you need to create two ISOs and deploy them separately.



                        Step 1   Go to /opt/cisco/package/vts/share.
                        Step 2   Make a copy of the vtsr_template.cfg template and edit for your VTSR instance. A sample vtsr_template.cfg file is given below:
                        # This is a sample  VTSR configuration file
                        # Copyright (c) 2015 cisco Systems
                        
                        # Please protect the generated ISO, as it contains authentication data
                        # in plain text.
                        
                        # VTS Registration Information:
                        #  VTS_ADDRESS should be the IP for VTS. The value must be either an ip or a mask.
                        #  VTS_ADDRESS is mandatory. If only the V4 version is specified,
                        #  The V4 management interface for the VTSR (NODE1_MGMT_NETWORK_IP_ADDRESS)
                        #  will be used. If the V6 version is specified, the V6 management interface
                        #  for the VTSR (NODE1_MGMT_NETWORK_IPV6_ADDRESS) must be specified and will be used.
                        #VTS_ADDRESS="172.23.209.17"
                        VTS_IPV6_ADDRESS="fded:1bc1:fc3e:96d0::1000:17"
                        # VTS_REGISTRATION_USERNAME used to login to VTS.
                        VTS_REGISTRATION_USERNAME="admin"
                        # VTS_REGISTRATION_PASSWORD is in plaintext.
                        VTS_REGISTRATION_PASSWORD="Cisco123!"
                        # VTSR VM Admin user/password
                        USERNAME="admin"
                        PASSWORD="cisco123"
                        
                        # VTSR VM Network Configuration for Node 1:
                        #  NETWORK_IP_ADDRESS, NETWORK_IP_NETMASK, and NETWORK_IP_GATEWAY
                        #     are required to complete the setup. Netmask can be in the form of
                        #     "24" or "255.255.255.0"
                        #  The first network interface configured with the VTC VM will be used for
                        #  underlay connectivity; the second will be used for the management network.
                        #  For both the MGMT and UNDERLAY networks, a <net-name>_NETWORK_IP_GATEWAY
                        #  variable is mandatory; they are used for monitoring purposes.
                        #
                        #  V6 is only supported on the mgmt network and dual stack is
                        #  currently not supported, so if both are specified V6 will take priority (and
                        #  requires VTS_IPV6_ADDRESS to be set).
                        #  The *V6* parameters for the mgmt network are optional. Note that if V6 is used for mgmt
                        #  it must be V6 on both nodes. Netmask must be the prefix length for V6.
                        #NODE1_MGMT_NETWORK_IP_ADDRESS="172.23.209.19"
                        #NODE1_MGMT_NETWORK_IP_NETMASK="255.255.255.192"
                        #NODE1_MGMT_NETWORK_IP_GATEWAY="172.23.209.1"
                        NODE1_MGMT_NETWORK_IPV6_ADDRESS="fded:1bc1:fc3e:96d0::1000:19"
                        NODE1_MGMT_NETWORK_IPV6_NETMASK="64"
                        NODE1_MGMT_NETWORK_IPV6_GATEWAY="fded:1bc1:fc3e:96d0::1"
                        NODE1_UNDERLAY_NETWORK_IP_ADDRESS="82.82.82.19"
                        NODE1_UNDERLAY_NETWORK_IP_NETMASK="255.255.255.0"
                        NODE1_UNDERLAY_NETWORK_IP_GATEWAY="82.82.82.1"
                        # AUX network is optional
                        #NODE1_AUX_NETWORK_IP_ADDRESS="169.254.20.100"
                        #NODE1_AUX_NETWORK_IP_NETMASK="255.255.255.0"
                        #NODE1_AUX_NETWORK_IP_GATEWAY="169.254.20.1"
                        # XR Hostname
                        NODE1_XR_HOSTNAME="vtsr01"
                        # Loopback IP and netmask
                        NODE1_LOOPBACK_IP_ADDRESS="128.0.0.10"
                        NODE1_LOOPBACK_IP_NETMASK="255.255.255.255"
                        
                        # VTSR VM Network Configuration for Node 2:
                        #  If there is no HA then the following Node 2 configurations will remain commented and
                        #  will not be used and Node 1 configurations alone will be applied
                        #  For HA , the following Node 2 configurations has to be uncommented
                        #  VTSR VM Network Configuration for Node 2
                        #  NETWORK_IP_ADDRESS, NETWORK_IP_NETMASK, and NETWORK_IP_GATEWAY
                        #     are required to complete the setup. Netmask can be in the form of
                        #     "24" or "255.255.255.0"
                        #  The first network interface configured with the VTC VM will be used for
                        #  underlay connectivity; the second will be used for the management network.
                        #  For both the MGMT and UNDERLAY networks, a <net-name>_NETWORK_IP_GATEWAY
                        #  variable is mandatory; they are used for monitoring purposes.
                        #
                        #  V6 is only supported on the mgmt network and dual stack is
                        #  currently not supported, so if both are specified V6 will take priority (and
                        #  requires VTS_IPV6_ADDRESS to be set).
                        #  The *V6* parameters for the mgmt network are optional. Note that if V6 is used for mgmt
                        #  it must be V6 on both nodes. Netmask must be the prefix length for V6.
                        #NODE2_MGMT_NETWORK_IP_ADDRESS="172.23.209.20"
                        #NODE2_MGMT_NETWORK_IP_NETMASK="255.255.255.192"
                        #NODE2_MGMT_NETWORK_IP_GATEWAY="172.23.209.1"
                        NODE2_MGMT_NETWORK_IPV6_ADDRESS="fded:1bc1:fc3e:96d0::1000:20"
                        NODE2_MGMT_NETWORK_IPV6_NETMASK="64"
                        NODE2_MGMT_NETWORK_IPV6_GATEWAY="fded:1bc1:fc3e:96d0::1"
                        NODE2_UNDERLAY_NETWORK_IP_ADDRESS="82.82.82.20"
                        NODE2_UNDERLAY_NETWORK_IP_NETMASK="255.255.255.0"
                        NODE2_UNDERLAY_NETWORK_IP_GATEWAY="82.82.82.1"
                        #  AUX network is optional
                        #  Although Aux network is optional it should be either present in both nodes
                        #  or not present in both nodes.
                        #  It cannot be present on Node1 and not present on Node2 and vice versa
                        #NODE2_AUX_NETWORK_IP_ADDRESS="179.254.20.200"
                        #NODE2_AUX_NETWORK_IP_NETMASK="255.255.255.0"
                        #NODE2_AUX_NETWORK_IP_GATEWAY="179.254.20.1"
                        # XR Hostname
                        NODE2_XR_HOSTNAME="vtsr02"
                        # Loopback IP and netmask
                        NODE2_LOOPBACK_IP_ADDRESS="130.0.0.1"
                        NODE2_LOOPBACK_IP_NETMASK="255.255.255.255"
                        
                        Step 3   Update the following on vtsr_template.cfg for your deployment.
                        Note    To deploy VTSR in HA mode, you need to create two ISOs. To create two ISOs, comment out the parameters starting NODE2_ in the sample file, and provide the appropriate values.
                        • VTS_ADDRESS - VTS IP address

                        • NODE1_MGMT_NETWORK_IP_ADDRESS - VTSR IP address

                        • NODE1_MGMT_NETWORK_IP_GATEWAY - VTSR gateway address

                        • NODE1_UNDERLAY_NETWORK_IP_ADDRESS - This is the place where TOR is connected directly

                        • NODE1_UNDERLAY_NETWORK_IP_GATEWAY - Underlay network IP address and Underlay network IP gateway should be brought where the VTS underlay network is configured.

                        Step 4   Run the buiild_vts_config_iso.sh vtsr script: This will generate the ISO file that you need to attach to the VM before booting it.

                        For example:

                         admin@dev:~$ /opt/cisco/package/vts/bin/build_vts_config_iso.sh vtsr /opt/cisco/package/vts/share/vtsr_template.cfg
                                       Validating input.
                                       validating
                                       Generating ISO File.
                                       Done!
                                       admin@dev:~$ ls -l
                                       -rw-r--r-- 1 admin vts-admin 360448 Jan 4 18:16 vtsr_node1_cfg.iso
                        Note    In case you had entered the parameters for the second ISO, for HA deployment, running the script generates two ISOs.

                        Deploying VTSR on OpenStack

                        To deploy VTSR on OpenStack:


                          Step 1   Create VTSR.XML referring the sample XML file. For example:
                          <domain type='kvm' id='20'>
                            <name>SAMPLE-VTSR-1</name>
                            <memory unit='GiB'>48</memory>
                            <cpu mode='host-passthrough'/>
                            <vcpu placement='static'>14</vcpu>
                            <resource>
                              <partition>/machine</partition>
                            </resource>
                          
                            <os>
                              <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
                              <boot dev='hd'/>
                              <boot dev='cdrom'/>
                            </os>
                            <features>
                              <acpi/>
                              <apic/>
                              <pae/>
                            </features>
                            <clock offset='localtime'/>
                            <on_poweroff>destroy</on_poweroff>
                            <on_reboot>restart</on_reboot>
                            <on_crash>restart</on_crash>
                            <devices>
                              <emulator>/usr/libexec/qemu-kvm</emulator>
                           
                              <disk type='file' device='cdrom'>
                                <driver name='qemu'/>
                                <source file='/home/admin/VTS20/images/vtsr_node1_cfg.iso'/>
                                <target dev='hda' bus='ide'/>
                                <readonly/>
                              </disk>
                           
                              <disk type='file' device='disk'>
                                <driver name='qemu' type='qcow2'/>
                                <source file='/home/admin/VTS20/images/vtsr.qcow2'/>
                                <target dev='vda' bus='virtio'/>
                                <alias name='virtio-disk0'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
                              </disk>
                          
                              <controller type='usb' index='0'>
                                <alias name='usb0'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
                              </controller>
                              <controller type='ide' index='0'>
                                <alias name='ide0'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
                              </controller>
                              <controller type='pci' index='0' model='pci-root'>
                                <alias name='pci.0'/>
                              </controller>
                          
                              <interface type='bridge'>
                                <source bridge='br-ex'/>
                                <virtualport type='openvswitch'>
                                  <parameters interfaceid='4ffa64df-0d57-4d63-b85c-78b17fcac60a'/>
                                </virtualport>
                                <target dev='vtsr-dummy-mgmt'/>
                                <model type='virtio'/>
                                <alias name='vnet1'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
                              </interface>
                          
                          
                              <interface type='bridge'>
                                <source bridge='br-inst'/>
                                <virtualport type='openvswitch'>
                                  <parameters interfaceid='4ffa64df-0d67-4d63-b85c-68b17fcac60a'/>
                                </virtualport>
                                <target dev='vtsr-dummy-2'/>
                                <model type='virtio'/>
                                <alias name='vnet1'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
                              </interface>
                          
                          
                              <interface type='bridge'>
                                <source bridge='br-inst'/>
                                <virtualport type='openvswitch'>
                                  <parameters interfaceid='4ffa64df-0f47-4d63-b85c-68b17fcac70a'/>
                                </virtualport>
                                <target dev='vtsr-dummy-3'/>
                                <model type='virtio'/>
                                <alias name='vnet1'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
                              </interface>
                          
                              <interface type='bridge'>
                                <source bridge='br-inst'/>
                                <virtualport type='openvswitch'>
                                  <parameters interfaceid='4ffa64df-0d47-4d63-b85c-58b17fcac60a'/>
                                </virtualport>
                                <vlan>
                                  <tag id='800'/>
                                </vlan>
                                <target dev='vtsr-gig-0'/>
                                <model type='virtio'/>
                                <alias name='vnet1'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
                              </interface>
                          
                              <interface type='bridge'>
                                <source bridge='br-ex'/>
                                <virtualport type='openvswitch'>
                                  <parameters interfaceid='3ffa64df-0d47-4d63-b85c-58b17fcac60a'/>
                                </virtualport>
                                <target dev='vtsr-gig-1'/>
                                <model type='virtio'/>
                                <alias name='vnet1'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
                              </interface>
                          
                              <interface type='bridge'>
                                <source bridge='br-inst'/>
                                <virtualport type='openvswitch'>
                                  <parameters interfaceid='a2f3e85a-4de3-4ca9-b3df-3277136c4054'/>
                                </virtualport>
                                <vlan>
                                  <tag id='800'/>
                                </vlan>
                                <target dev='vtsr-gig-2'/>
                                <model type='virtio'/>
                                <alias name='vnet3'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
                              </interface>
                          
                              <serial type='pty'>
                                <source path='/dev/pts/0'/>
                                <target port='0'/>
                                <alias name='serial0'/>
                              </serial>
                              <console type='pty' tty='/dev/pts/0'>
                                <source path='/dev/pts/0'/>
                                <target type='serial' port='0'/>
                                <alias name='serial0'/>
                              </console>
                              <input type='tablet' bus='usb'>
                                <alias name='input0'/>
                              </input>
                              <input type='mouse' bus='ps2'/>
                              <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'>
                                <listen type='address' address='0.0.0.0'/>
                              </graphics>
                              <video>
                                <model type='cirrus' vram='9216' heads='1'/>
                                <alias name='video0'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
                              </video>
                              <memballoon model='virtio'>
                                <alias name='balloon0'/>
                                <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
                              </memballoon>
                            </devices>
                          </domain>
                          Step 2   Create the VM using the XML and pointing the correct qcow2 and ISO.
                          virsh create VTSR.xml
                          Step 3   To ensure VTSR is configred with the proper day zero configuration, SSH to VTSR and then run:
                          RP/0/RP0/CPU0:vtsr01#bash
                          [xr-vm_node0_RP0_CPU0:~]$docker ps
                          CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
                          31f6cbe6a048 vtsr:dev "/usr/bin/supervisord" 3 weeks ago Up 7 days vtsr
                          Step 4   Run either of the following commands:
                          • [xr-vm_node0_RP0_CPU0:~]$docker exec -it vtsr bash
                          Or,
                          • [xr-vm_node0_RP0_CPU0:~]$docker exec -it 31 bash

                          In the second option, 31 is the process ID, which you can get from Step 3.

                          an out put similar to the below example is displayed:

                          connecting to confd_cli
                          root@host:/opt/cisco/package# confd_cli -u admin -C
                          Welcome to the ConfD CLI
                          admin connected from 127.0.0.1 using console on host
                          host> en
                          host# show running-config vtsr-?
                          Possible completions:
                          vtsr-config vtsr-day0-config
                          host(config)# vtsr-config ?
                          Possible completions:
                          dhcp-relays global-config interfaces ip-routes l2-networks vm-macs vrfs vtfs
                          host(config)# vtsr-config

                          Deploying VTSR on VMWare

                          Deploying the VTSR.ova is similar to XRNC.


                            Step 1   Generate an ISO file for the VTSR VM. See Generating an ISO for VTSR .
                            Step 2   In the vSphere Client, select File > Deploy OVF Template. The Deploy OVF Template wizard appears.
                            Step 3   Select VTSR.ova from the source location, and click Next.The OVF template details are displayed.
                            Step 4   Click Next to specify the destination. Enter the following details:
                            • Name for the VM

                            • Folder or datacenter where the VM will reside

                            Step 5   Click Next to select the storage location to store the files for the template. The default values for virtual disk format and VM Storage Policy need not be changed.
                            Step 6   Click Next to set up the networks. Specify the first network as the Underlay Network and the second network as the Management Network.
                            Step 7   Click Next. Review the settings selections.
                            Step 8   Click Finish to start the deployment.
                            Step 9   After the deployment is complete, edit the VM settings. Add a CD/DVD Drive selecting Datastore ISO file and point to the vtsr.iso file which was generated and uploaded to the host.
                            Step 10   Power on the VM.
                            Step 11   To ensure VTSR is configred with the proper day zero configuration, SSH to VTSR and then run:
                            RP/0/RP0/CPU0:vtsr01-vcenter#bash
                            [xr-vm_node0_RP0_CPU0:~]$docker ps
                            CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
                            31f6cbe6a048 vtsr:dev "/usr/bin/supervisord" 3 weeks ago Up 7 days vtsr
                            Step 12   Run either of the following commands:
                            • [xr-vm_node0_RP0_CPU0:~]$docker exec -it vtsr bash
                            Or,
                            • [xr-vm_node0_RP0_CPU0:~]$docker exec -it 31 bash

                            In the second option, 31 is the process ID, which you can get from Step11.

                            An output similar to the below example is displayed:

                            connecting to confd_cli
                            root@host:/opt/cisco/package# confd_cli -u admin -C
                            Welcome to the ConfD CLI
                            admin connected from 127.0.0.1 using console on host
                            host> en
                            host# show running-config vtsr-?
                            Possible completions:
                            vtsr-config vtsr-day0-config
                            host(config)# vtsr-config ?
                            Possible completions:
                            dhcp-relays global-config interfaces ip-routes l2-networks vm-macs vrfs vtfs
                            host(config)# vtsr-config

                            Do not press or Enter key when the VTSR is loading or getting registered with VTC. For vCenter, VTSR may take approximately 30-45 minutes to come up.


                            Installing VTSR in High Availability Mode

                            Enabling VTSR high availability involves:

                            The system automatically detects which VM is the Master and which is the slave, based on the information you provide while generating the ISO files.

                            Verifying VTSR HA Setup

                            You can check the VTSR HA status using the crm_mon command. For example:
                             root@vtsr01:/opt/cisco/package# crm_mon -Afr1
                            Last updated: Fri Apr 14 06:04:40 2017          Last change: Thu Apr 13 23:08:25 2017 by hacluster via crmd on vtsr01
                            Stack: corosync
                            Current DC: vtsr02 (version 1.1.14-70404b0) - partition with quorum
                            2 nodes and 11 resources configured
                            
                            Online: [ vtsr01 vtsr02 ]
                            
                            Full list of resources:
                            
                            dl_server      (ocf::heartbeat:anything):      Started vtsr01
                            Clone Set: cfg_dl_clone [cfg_dl]
                                 Started: [ vtsr01 vtsr02 ]
                            Clone Set: rc_clone [rc]
                                 Started: [ vtsr01 vtsr02 ]
                            Clone Set: confd_clone [confd]
                                 Started: [ vtsr01 vtsr02 ]
                            Clone Set: mping_clone [mgmt_ping]
                                 Started: [ vtsr01 vtsr02 ]
                            Clone Set: uping_clone [underlay_ping]
                                 Started: [ vtsr01 vtsr02 ]
                            
                            Node Attributes:
                            * Node vtsr01:
                                + mping                             : 100       
                                + uping                             : 100       
                            * Node vtsr02:
                                + mping                             : 100       
                                + uping                             : 100       
                            
                            Migration Summary:
                            * Node vtsr02:
                            * Node vtsr01:
                            

                            Applying VTSR Device Templates Using vts-cli.sh Script

                            The day zero configuration (OSPF, loopback0) has to be configured on VTSR using the vts-cli.sh script. You can apply the following templates:


                            Note


                            This procedure is not required in case you have VTF in L2 switch mode.


                            To determine the usage go to /opt/vts/bin and enter ./vts-cli.sh
                            admin@tb11-vtc:/opt/vts/bin$ ./vts-cli.sh
                            Usage: 
                                    vts-cli -<command> <templateName> 
                            Valid commands are:
                                      vts-cli -createTemplate <templateName>
                                                -- creates template structure in VTC db.
                                      vts-cli -applyTemplate <templateName>
                                                -- collects template variables values & applies template to device.
                                      vts-cli -deleteTemplate <templateName>
                                                -- deletes template structure from VTC db.
                                      vts-cli -deleteTemplateConfig <templateName>
                                                -- deletes earlier applied template config from device.
                                      vts-cli -getTemplate <templateName>
                                                -- gets template structure from VTC db.
                            

                            If they are issues in running the commands check the /opt/vts/bin/vts-cli.log to get more details.

                            Applying Loopback Template

                            To apply Loopback template:

                              Step 1   On VTC (Master VTC in case of an HA setup), go to /opt/vts/bin.
                              Step 2   Run the following command:
                              admin@VTC1:/opt/vts/bin$ vts-cli.sh -applyTemplate vtsr-underlay-loopback-template

                              This will prompt you to input the parameters. For example:

                              Enter device name: vtsr01 
                              Enter loopback-interface: Loopback0
                              Enter ipaddress: 100.100.100.100
                              Enter netmask: 255.255.255.255
                              

                              In case you have a VTSR HA setup, apply the template on both VTSRs.

                              . The following message is shown if the configuration got applied correctly:
                              Template vtsr-underlay-loopback-template successfully applied to device vtsr01‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

                              Applying OSPF Template

                              To apply OSPF template:

                                Step 1   On VTC (Master VTC in case of an HA setup), go to /opt/vts/bin.
                                Step 2   Run the following command:
                                admin@VTC1:/opt/vts/bin$ vts-cli.sh -applyTemplate vtsr-underlay-ospf-template

                                This will prompt you to input the parameters. For example:

                                Enter device name: VTSR-1
                                Enter process-name: 100
                                Enter router-id: 48.8.8.8
                                Enter area-address: 0.0.0.0
                                Enter physical-interface: GigabitEthernet0/0/0/0
                                Enter loopback-interface: Loopback0
                                Enter default-cost: 10
                                

                                In case you have a VTSR HA setup, apply the template on both VTSRs.

                                . The following message is shown if the configuration got applied correctly:
                                Template vtsr-underlay-ospf-template successfully applied to device vtsr01


                                Installing the Virtual Topology Forwarder

                                You can install VTF using the Cisco VTS GUI. See Installing VTF on vCenter and Installing VTF on OpenStack for details.


                                Note


                                If your VMM version is OpenStack Liberty on RHEL, and VTF installation mode is vtf-vhost, you need to manually install VTF. See Installing VTF in vhost Mode using Ansible for details. You need to refresh the Host Inventory page, after you complete the manual installation, for the details to get updated in the Host Inventory page.


                                We recommend that you register the VMM via the VTS GUI, before you install VTF to ensure there are no errors later.

                                Before you install VTF, you must install VTSR and register it to VTS. See Installing VTSR, for details.

                                Also, verify whether VTSR is in sync with the VTC. If not, use the sync-from operation via VTS-GUI to synchronize the VTS configuration by pulling configuration from the device. See Synchronizing Configuration section in the Cisco VTS User Guide for more information on this feature.

                                Installing VTF on OpenStack


                                Note


                                If the VMM version is openstack-liberty-rhel and the mode for VTF deployment is vtf-vhost, VTF installation has to be done manually.



                                  Step 1   Specify the VTF Mode in the System Settings. Go to Administration > System Settings page, select either L2 or VTEP from the drop down, based on your requirement.
                                  Step 2   Go to Host Inventory > Virtual Servers. You can either edit an existing host, or install VTF while adding a new host. See Cisco VTS User Guide for details.
                                  Step 3   Enter the Host Information

                                  Ensure that you review the tooltips for important information about the entries.

                                  Step 4   Select the VMM ID
                                  Step 5   Select the Virtual Switch as vtf-L2 option. VTF as an L2 switch is supported only if VTF is deployed as a vHost.
                                  Note    The options that you get here are based on your selection for VTF Mode in the System Settings UI.
                                  Step 6   Enter the Host Interface details.
                                  Step 7   Enter the VTF details. If the VTF is already deployed in vHost mode, the details are prepopulated.
                                  Note    You need to add following firewall rules (iptables) on all computes where VTF-L2 installation is planned. This is to ensure that VTF-L2 is programmed by VTSr.
                                  iptables -I INPUT -p tcp -s <VTSr underlay IP> --dport 21345 -j ACCEPT
                                  iptables -I INPUT -p tcp -s <VTSr underlay IP> --dport 55555 -j ACCEPT
                                  

                                  Save the iptables by running - service iptables save.

                                  If you are have VTSr in HA mode, you need to run above commands for both VTSr IPs

                                  Step 8   Click Save.

                                  Installing VTF in vhost Mode using Ansible

                                  VTF has 2 major components—Cisco's VPP (Vector Packet Processing)and VPFA. VPFA is a Cisco agent running on each VMM compute resource. VPFA maintains a communication channel with the VTSr, and provisions VM ports and overlay networks in VPP engine.
                                  This section provides information about installing VTF. VTF installation is overlayed on an OpenStack Compute environment.

                                  Note


                                  Only RHEL nodes are currently supported as target vhost nodes.

                                  The automated installation is enabled via VTS Ansible playbook, which so takes care of GRUB setup on each compute.

                                  Before You Begin

                                  Before you start the installation, make sure the following requirements are met:
                                  • Ensure that the following is installed:
                                    • RHEL version 7.3

                                    • QEMU—qemu-kvm-rhev-2.6.0-28.el7_3.6.x86_64

                                    • libVirt—libvirt-2.0.0-10.el7_3.4.x86_64

                                    • Kernel version—3.10.0-514.6.2.el7.x86_64

                                    • Kernel Drivers—uio_pci_generic: version 0.01.0 or vfio_pci: version 0.2

                                    • OpenStack Nova compute
                                    • OpenStack Newton

                                  • Ensure that the target vhost compute node has at least 16Gb of RAM and 2 CPUs.

                                  • The interfaces targeted by the operator to be mapped to the VPP must be enabled as regular linux interfaces prior to installation, and their interface names used as part of the inventory parameters.

                                    VPP bonding works in—Intel X710-DA4, Intel 82599, Intel 1350I, X540-AT2, UCS VIC 1225, UCS VIC 1385 NICs.

                                  • The VTC server, which acts as the Ansible launchpad node, comes with all software dependencies pre-installed.

                                  • For Red Hat OpenStack Director, the compute nodes are not accessible directly, and the only way to access the nodes is via OSP director. Therefore, the procedure involves installing and configuring SSH keys on the computes using ansible proxy and then installing VTF using the same SAMPLE_INVENTORY file. See Setting Up Ansible Install Through an SSH Proxy (for RHEL OpenStack Platform Director) for details.
                                  • To run the playbook, a host(s) inventory needs to be provided, along with host parameters:

                                    Use a single inventory file and pass it to Ansible via the -i option. The SAMPLE_INVENTORY file contains an example of such a file for a single host. Re-use this inventory, modifying the host or group settings as needed, as well as adding additional hosts to the group.

                                    The inventory specifies variables that are used to configure VPP, VPFA, and SSH proxy correctly. These variables are:

                                    Note


                                    Due to a python library limitation, the host variables must be on a single line. Optional parameters are commented out (#),which are not needed for VTF install.
                                    ### Common group variables ###
                                    [all:vars]
                                    # When using IPv6 literals encolse the address in square brackets []
                                    VTS_IP="<IP of FQDN OF VTS>"
                                    VTS_USERNAME="<vts-username>"
                                    VTS_PASSWORD="<vts-password>"
                                    VMM_NAME="<vmm-name>"
                                    
                                    ### VTS-Agent specific variable for P hosts with VTS OVS agent ###
                                    #[vts_p_hosts_ovs]
                                    #<nova compute name> ansible_ssh_host="DNS name/IP of target host"
                                    
                                    # Group variables for P hosts with VTS OVS agent
                                    #[vts_p_hosts_ovs:vars]
                                    #ansible_ssh_user=heat-admin
                                    #VMM_ID="e13aebf0-ef9f-4992-b777-ac67a0ddcaa4"
                                    
                                    
                                    ### VTF V-Host (VPP) specific variables, more details are given below ###
                                    [vts_v_hosts]
                                    ### The host variables specified below must be on a single line ###
                                    <nova compute name> ansible_ssh_host="DNS name/IP of target host" 
                                    vhost_type="compute" 
                                    host_ip="Underlay IP address" 
                                    host_netmask_len="Underlay Netmask" 
                                    net_gw="Underlay Gateway" 
                                    underlay_if="interface name" 
                                    interfaces='["bond interface1", "bond interface2"]' 
                                    u_addresses='["List of routes on the underlay"]' 
                                    vif_type="vhostuser"
                                    
                                    
                                    # nova compute name - your compute name (e.g. overcloud-compute-0.localdomain)
                                    # ansible_ssh_host - your compute IP address, which is reachable from OSP director
                                    # host_ip - underlay IP address that will be assigned to this host during VTF install
                                    # underlay_if - Type of bond mode used, one of the bonding types. Eg "bond-active-backup" or "bond-balance-xor-l23". If "bond" is specified the default mode balance-xor-l34 will be used
                                    # interfaces - List of system interface names for bonding] eg: '["enp6s0f1","enp6s0f0"]', are the
                                    constituent member of the BOND. VPP binds to the PCI devices for the uplink interfaces based on the input provided with this variable
                                    # u_addresses - List of networks reachable through VPP underlay, generally VTC underlay subnet
                                    
                                    
                                    # V-Host Group variables
                                    [vts_v_hosts:vars]
                                    #If not using a sudo capable user below, then please specify "ansible_sudo_pass"
                                    # Note: by default OSPD creates heat-admin user to access all the nodes so will use this user to access the nodes to install VTF
                                    ansible_ssh_user=heat-admin
                                    #ansible_ssh_pass="cisco123"
                                    #ansible_sudo_pass="cisco123"
                                    #ansible_ssh_private_key_file="id_rsa"
                                    
                                    config_method="static"
                                    name_server="<DNS server IP>"
                                    #VTS address on the underlay. If not set, defaults to VTS_IP
                                    vts_u_address="<VTC-underlay-ip>"
                                    
                                    # % of memory you want to allocate on compute for huge pages. 
                                    max_hp_memory_perc=70
                                    
                                    # Configure VTF to run in multi-thread mode
                                    enable_workers=True
                                    #l2_mode=False
                                    
                                    #[pci_driver="vfio-pci|uio_pci_generic"]
                                    #Defaults to uio_pci_generic when not specified. Use "vfio-pci" along with a Cisco VIC.
                                    pci_driver="uio_pci_generic"
                                    
                                    
                                    ### Neutron Control Servers ###
                                    #[neutron_servers]
                                    #<name> ansible_ssh_host="DNS name/IP of target host"
                                    
                                    #[neutron_servers:vars]
                                    #ansible_connection=ssh
                                    #If not using a sudo capable user below, then please specify "ansible_sudo_pass"
                                    #ansible_ssh_user=heat-admin
                                    #ansible_ssh_pass=cisco123
                                    #ansible_sudo_pass="cisco123"
                                    #ansible_ssh_private_key_file="id_rsa"
                                    
                                    #VTS_DRIVER="cisco_vts"
                                    #VMM_NAME=OSPD
                                    # VTS_USERNAME and PASSWORD can be overriden here, or the all group setting used
                                    #VTS_USERNAME=<VTS username>
                                    #VTS_PASSWORD=<VTS password>
                                    
                                    
                                    ### Grouping of host-groups behind the SSH Proxy ###
                                    # List the host group names that are proxied by an SSH gateway
                                    # Comment out when NOT using an SSH proxy
                                    # We’ll be using SSH proxy for VTF install so we’re commenting other lines
                                    [proxied_hosts:children]
                                    #neutron_servers
                                    vts_v_hosts
                                    
                                    # Access parameters to the proxied hosts. **The password is that of the ssh proxy**
                                    [proxied_hosts:vars]
                                    ansible_ssh_pass=<OSP director password>
                                    # **Do not modify or remove the following line**
                                    ansible_ssh_common_args='-o ProxyCommand="ssh -C -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ControlMaster=auto -o ControlPersist=300s -o GSSAPIAuthentication=no -W %h:%p -q {{hostvars[groups[\'proxy\'][0]][\'ansible_ssh_user\']}}@{{hostvars[groups[\'proxy\'][0]][\'ansible_ssh_host\']}}"'
                                    
                                    
                                    ### SSH Proxy node definition. Do not modify the group name ###
                                    # Maximum of one proxy is currently supported
                                    [proxy]
                                    undercloud1 ansible_ssh_host="<OSP Director IP>"
                                    
                                    # SSH Proxy access parameters. Do not modify the group name
                                    [proxy:vars]
                                    ansible_ssh_user=<OSP director username>
                                    ansible_ssh_pass=<OSP director password>
                                    
                                  • The binding HOSTNAME in Inventory file, should match OpenStack Nova compute name.

                                  If you


                                    Step 1   Go to /opt/vts/lib/ansible/playbooks/
                                    Step 2   Run the vpp.yaml playbook via the ansible-playbook command, from the playbook directory passing as extra parameter the install|uninstall action. Optionally the inventory file, as described above, can also be passed as an argument.
                                    • With inventory file:
                                      sudo ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i SAMPLE_INVENTORY vpp.yaml -e ACTION=install|uninstall|reconfigure

                                    Using Ansible Vault for Sensitive Data
                                    The Ansible vault feature allows keeping sensitive data such as passwords or keys in encrypted files, rather than as plaintext in one or more inventory files.
                                    We recommend that you store the following VTS specific parameters in a vault:
                                    • ansible_ssh_user: <username>
                                    • ansible_ssh_pass: <password>
                                    • vts_reg_username: <vts username>
                                    • vts_reg_password: <vts password>
                                    • vtc_username: <vtc username>

                                    The sample file "vts-host" in the playbooks/group_vars directory contains a list of such attributes.

                                    Vault encrypted parameters can be host or group parameters and are automatically included in an Ansible run, provided a vault password is provided. Additional vault protected files, containing parameters, can also be included via the Ansible command line.

                                    To vault protect a file defining group parameters do the following:


                                      Step 1   Enter the playbooks/group_vars directory.
                                      Step 2   Create/edit the filename corresponding to the group name, for example:
                                      vi vts-hosts
                                      Step 3   Add the parameters in plain text and yaml format.
                                      Step 4   Exit the editor.
                                      Step 5   Use the ansible-vault encrypt <file name> command on the file. For example:
                                       ansible-vault encrypt vts-hosts
                                      Ansible asks for a vault password to be entered. This password must be kept confidential, and will be required when running a playbook using the vaulted file.
                                      Step 6   To re-edit an encrypted file use the ansible-vault edit <filename> command To run a playbook against an inventory which either wholly or partially is protected by Ansible vault, add the --ask-vault-pass to the ansible command line. For example:
                                      ansible-playbook vpp.yaml -i SAMPLE_INVENTORY -e ACTION=install --ask-vault-pass
                                      Specific additional vault protected attributes contained in a file can be also added passing the -e @<filename> parameter. For example:
                                      ansible-playbook vpp.yaml -i SAMPLE_INVENTORY -e ACTION=install -e @crypto-params.yaml --ask-vault-pas

                                      Verifying Installation
                                      After a successful install the vpfa and vpp services should be both running.

                                      VPP should have one or more interfaces up and running. Run vppctl show int to verify this.


                                      Note


                                      Upon running, the current VPFA installs a default route to the configured gateway across the underlay interface. If the gateway or the underlay interface is different than the SSH IP interface, this results in a loss of SSH connectivity to the device. Disable the vpfa and vpp services via the console to regain SSH connectivity.


                                      Deleting VTF in an OpenStack Environment

                                      The following sections provide information about deleting VTF based on the mode of installation (VM or vHost).

                                      Deleting VTF in VM Mode

                                      If VTF is installed in VM, do the following:


                                        Step 1   Clean up the VTF from host compute using virsh destroy and virsh undefine commands.
                                        Step 2   Disassociate the VTF from Inventory > Virtual Forwarding Groups.
                                        Step 3   Change the Host type to virtual server in Inventory > Host Inventory, and click Save.

                                        Deleting VTF in vHost Mode

                                        If VTF is installed in vHost mode:

                                          Step 1   Uninstall vHost from host compute using Ansible script (ansible-playbook -i SAMPLE_INVENTORY vpp.yaml -e ACTION=uninstall).
                                          Step 2   Change the virtual switch to not-defined in Inventory > Host Inventory, and click Save.
                                          Note   

                                          If VTF is being used as an L2 Switch or in VTEP mode, edit the Host to change the Virtual Switch mode to not-defined, to disassociate the VTF.


                                          Installing VTF on vCenter

                                          You can use the Install Capabilities button in the Host Inventory page to install VTF.


                                            Step 1   Specify the VTF Mode in the System Settings. Go to Administration > System Settings page, select VTEP from the drop down.
                                            Step 2   Go to Host Inventory > Virtual Servers. You can install VTF while adding a new host or by editing an existing host.
                                            Step 3   Enter the Host Information

                                            Ensure that you review the tooltips for important information about the entries.

                                            Step 4   Select the VMM ID for the vCenter VMM.
                                            Step 5   Select the Virtual Switch. You have the following options:
                                            • Not Defined
                                            • DVS

                                            • vtf-vtep

                                            To install VTF, select vtf-vtep

                                            Step 6   Enter the Host Interface details.
                                            Step 7   Enter the VTF details.
                                            • VTF IP

                                            • VTF Name

                                            • Underlay VLAN ID

                                            • Subnet Mask

                                            • Gateway

                                            • User

                                            • Passphrase

                                            • Confirm Passphrase

                                            Step 8   Confirm whether the Plugin installation needs to start immediately
                                            Step 9   Click Install VTF on Save.

                                            Deleting VTF in a vCenter Environment

                                            To delete VTF:


                                              Step 1   Power off the VTF VM from vCenter, and delete it under ESXi.
                                              Step 2   Ensure that there is no other VM associated with the DVS port-group.
                                              Step 3   Remove the ESXi host from vCenter under the DVS on which VTF was spawned.
                                              Step 4   Disassociate the VTF from Virtual Forwarding Group (VFG).
                                              Step 5   Convert the Host back to virtual-server in Cisco VTS GUI.
                                              Step 6   Remove the associated TOR from the Admin Domain.
                                              Step 7   Add the ESXi Host back to the DVS in vCenter.
                                              Step 8   Restart the vSphere web client.
                                              Step 9   Verify whether the host is part of the DVS device-group and Admin Domain.

                                              Verifying VTS Installation

                                              The following sections provide information about how to verify the VTS installation:

                                              Verifying VTC VM Installation

                                              To verify VTC VM installation:


                                                Step 1   Log in to the VTC VM just created using the VTC VM console.
                                                • If you have installed the VTC VM in a VMware environment, use the VM console.
                                                • If you have installed the VTC VM in an RedHat KVM based-OpenStack environment, - telnet 0 <console-port> (The console port is telnet port in the VTC.xml file.)
                                                Step 2   Ping the management gateway.

                                                In case ping fails, verify the VM networking to the management network.

                                                Step 3   For the VTC VM CLI, ping the underlay gateway.

                                                In case the ping fails, verify VM networking to the underlay network.

                                                Note    Underlay network gateway is the switched virtual interface (SVI) created for VTSR and VTF on the leaf where the controller is connected.
                                                Step 4   Verify whether the VTS UI is reachable, by typing in the VTS management IP in the browser.

                                                Verifying VTSR Installation

                                                To verify VTSR installation:


                                                  Step 1   Log in to the VTSR.
                                                  • If you have installed the VTC VM in a VMware environment, use the VM console.
                                                  • If you have installed the VTC VM in an RedHat KVM based-OpenStack environment, use virt-manager or VNC based console method to login into the VM. See Installing VTC VM - Manual Configuration using VNC
                                                  Step 2   Ping the underlay gateway IP address.

                                                  In case ping fails, verify underlay networking.

                                                  Step 3   Ping the VTC VM.

                                                  In case ping fails, verify underlay networking.

                                                  Note   

                                                  You should be able to ping the gateway IP address for both management and underlay networks, as VTSR registers to the VTC using the management IP address.

                                                  Step 4   Run virsh list to make sure the nested VM is running.
                                                  Step 5   Verify whether the Virtual Forwarding Group (VFG) group is created on VTS GUI, and VTSR is part of the VFG group.
                                                  Note    This is not available if you are running VTF in L2 mode (Administration > System Settings > VTF Mode set to L2).

                                                  Verifying VTF Installation

                                                  To verify VTF installation:


                                                    Step 1   Log in to the VTF VM / vhost.
                                                    • If you have installed the VTC VM in a VMware environment, use the VM console.
                                                    • If you have installed the VTC VM in an RedHat KVM based-OpenStack environment, use virt-manager or VNC based console method to login into the VM. See Installing VTC VM - Manual Configuration using VNC
                                                    Step 2   Ping the underlay gateway IP address.

                                                    In case ping fails, verify underlay networking.

                                                    Step 3   Ping the VTC VM underlay IP address.

                                                    In case ping fails, verify underlay networking.

                                                    Step 4   Verify whether the VTF CLI is available . To do this, run:
                                                    'sudo vppctl

                                                    If the o/p command fails, run the following command to identify whether vpfa service is up and running:

                                                    sudo service vpfa status
                                                    If there are errors, try restarting the service.
                                                    sudo service vpfa restart
                                                    Step 5   Verify whether the VTF is part of the VFG, on VTS GUI.
                                                    Note    This is not applicable is you have VTF is L2 mode (Administration > System Settings > VTF Mode is L2).

                                                    Changing Password for Cisco VTS from VTS GUI

                                                    The GUI password change will trigger the updating of password on all host agents which are running on the Physical computes. And if there are VTFs in your setup, then the VTSR and VTF passwords will also get updated.

                                                    Important:
                                                    • Traffic disruption will happen only if you have VTFs installed (Virtual deployment) and it happens because of the vpfa process restart.

                                                      In case of a Physical deployment there will not be any traffic disruption.

                                                    • For Baremetal ports there is no impact.
                                                    • The password change from the GUI will change only the host agent password. Not the Linux password. So, we cannot use the command ‘passwd’
                                                    • If you are changing the Linux password of a Physical or Virtual host then you should also update the VTC host inventory with correct password. Changing the Linux password will not impact any traffic.

                                                      Step 1   Log in to VTS GUI and click on settings icon on the top-right corner and click Change Passphrase.
                                                      Step 2   Enter the current password, new password, then click Change Passphrase.
                                                      Step 3   Click OK in the Confirm Change Passphrase popup, to confirm.
                                                      Note    The message in the Confirm Change Passphrase window is just a generic message. See important notes above for details about possible traffic disruption.

                                                      Changing Password for Cisco VTS Linux VM

                                                      You can use the Linux command ‘passwd’ to change the VTC VM password. After changing the password, you should use the new password for the subsequent SSH session to the VTC VM.

                                                      For an HA installation you must change the password on both Master and Slave with the command ‘passwd’.