Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

Importing Contrail Cluster Data using Contrail Command

 

Contrail Networking supports importing of Contrail Cluster data to Contrail Command provisioned using one of the following applications - OpenStack, Kubernetes, VMware vCenter, and TripleO.

System Requirements

  • A VM or physical server with:

    • 4 vCPUs

    • 32 GB RAM

    • 100 GB storage

  • Internet access to and from the physical server, which is the Contrail Command server.

  • (Recommended) x86 server with CentOS 7.6 as the base OS to install Contrail Command.

For a list of supported platforms, see Supported Platforms.

Before you begin

docker-py Python module is superseded by docker Python module. You must remove docker-py and docker Python packages from all the nodes where you want to install the Contrail Command UI.

pip uninstall docker-py docker

Configuration

Perform the following steps to import Contrail Cluster data.

  1. Install Docker to pull contrail-command-deployer container. This package is necessary to automate the deployment of Contrail Command software.

    yum install -y yum-utils device-mapper-persistent-data lvm2

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    yum install -y docker-ce-18.03.1.ce

    systemctl start docker

  2. Download the contrail-command-deployer Docker container image to deploy contrail-command (contrail_command, contrail_psql containers) from hub.juniper.net. Allow Docker to connect to the private secure registry.

    docker login hub.juniper.net --username <container_registry_username> --password <container_registry_password>

    Pull contrail-command-deployer container from the private secure registry.

    docker pull hub.juniper.net/contrail/contrail-command-deployer:<container_tag>

    Example, for container_tag:1911.31, use the following command:

    docker pull hub.juniper.net/contrail/contrail-command-deployer:1911.31

  3. Get the command_servers.yml file that was used to bring the Contrail Command server up and the configuration file that was used to provision the Contrail Cluster.Note

    "For OpenShift orchestrator use the ose-install file instead of instances.yml file.

  4. Start the contrail-command-deployer container to deploy the Contrail Command (UI) server and import Contrail Cluster data to Contrail Command (UI) server using the Cluster configuration file provided.
    • Import Contrail‑Cluster provisioned using a supported orchestrator (OpenStack/Kubernetes/OpenShift/vCenter/Mesos).

      docker run -td --net host -e orchestrator=<YOUR_ORCHESTRATOR> -e action=import_cluster -v < ABSOLUTE_PATH_TO_COMMAND_SERVERS_FILE>:/command_servers.yml -v < ABSOLUTE_PATH_TO_CLUSTER_CONFIG_FILE>:/instances.yml --privileged --name contrail_command_deployer hub.juniper.net/contrail/contrail-command-deployer:<container_tag>

      To use the following supported orchestrators, replace <YOUR_ORCHESTRATOR> in the command with the options given below.

      • For OpenStack, use openstack.

      • For Kubernetes, use kubernetes.

      • For Red Hat OpenShift, use openshift.

        Note

        You must use ose-install file instead of instances.yml file.

      • For VMware vCenter, use vcenter.

      • For Mesos, use mesos.

    • Import Contrail‑Cluster provisioned using OSPDirector/TripleO Life Cycle Manager for RedHat OpenStack Orchestration.

      Prerequisites:

      • IP_ADDRESS_OF_UNDERCLOUD_NODE is an Undercloud node IP that must be reachable from the contrail-command-deployer node. You must be able to SSH to Undercloud node from the contrail-command-deployer node.

      • External VIP is an Overcloud VIP where OpenStack and Contrail public endpoints are available. External VIP must be reachable from Contrail Command node.

      • DNS host name for Overcloud external VIP must be resolvable on Contrail Command node. Add the entry in the /etc/hosts file.

      docker run -td --net host -e orchestrator=tripleo -e action=import_cluster -e undercloud=<IP_ADDRESS_OF_UNDERCLOUD_NODE> -e undercloud_password=<STACK_USER_PASSWORD_FOR_SSH_TO_UNDERCLOUD> -v < ABSOLUTE_PATH_TO_COMMAND_SERVERS_FILE>:/command_servers.yml --privileged --name contrail_command_deployer hub.juniper.net/contrail/contrail-command-deployer:<container_tag>

      • Contrail command server must have access to External VIP network to communicate with the configured endpoints.

        Run the following commands:

        ovs-vsctl add-port br0 vlan<externalNetworkVlanID> tag=<externalNetworkVlanID> -- set interface vlan<externalNetworkVlanID> type=internal

        ip link set dev vlan<externalNetworkVlanID> up

        ip addr add <externalNetworkGatewayIP>/<subnetMask> dev vlan<externalNetworkVlanID>
      • If you have used domain name for the external VIP, add the entry in the /etc/hosts file.

        Run the following commands:

        docker exec -it contrail_command bash

        vi /etc/hosts

        <externalVIP> <externalVIP’sDomainName>

Sample instances.yml file