Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Deploying Contrail Cluster using Contrail-Command and instances.yml

Contrail Release 5.0.1 supports deploying a Contrail cluster using Contrail Command and the instances.yml file.

System Requirements

  • A VM or physical server with:

    • 8 vCPUs

    • 64 GB RAM

    • 300 GB disk out of which 256 GB is allocated to /root directory.

  • Internet access to and from the physical server, hereafter referred to as the Contrail Command server

  • (Recommended) x86 server with CentOS 7.5 (Minimal ISO) as the base OS to install Contrail Command

Prerequisite

docker-py is obsolete in Contrail Release 5.0.2. You must remove docker-py and docker Python packages from all the nodes where you want to install the Contrail Command UI.

Configuration

Perform the following steps to deploy a Contrail cluster using Contrail Command and the instances.yml file.

  1. Install Docker on the Contrail Command server. These packages are 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

    systemctl start docker

  2. Download Contrail-Command-Deployer docker container image from hub.juniper.net. To download these containers and for access to hub.juniper.net, refer to the Access to Contrail Registry topic on the Contrail software download page. 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: 5.0.1-0.214, use the following command:

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

  3. Edit the input configuration instances.yml file. See #deploying-contrail-cluster-using-contrail-command-and-instances-yml__sample_instances_yml for a sample instances.yml file.
  4. Start the Contrail_Command_Deployer container to deploy the Contrail-Command (UI) server and provision Contrail-Cluster using the instances.yml file provided.

    docker run -t --net host -e action=provision_cluster -v <ABSOLUTE_PATH_TO_COMMAND_SERVERS_FILE>:/command_servers.yml -v < ABSOLUTE_PATH_TO_INSTANCES_FILE>:/instances.yml -d --privileged --name contrail_command_deployer hub.juniper.net/contrail/contrail-command-deployer: <container_tag>

    The contrail_command and contrail_mysq Contrail Command containers are deployed. Contrail cluster is also provisioned using the given instances.yml file.

  5. (Optional) Track the progress of 4.

    docker logs -f contrail_command_deployer

  6. Once the playbook execution completes, log in to Contrail Command using https://Contrail-Command-Server-IP-Address:9091. Use the same user name and password that was entered in 3. Default username is admin and password is contrail123.

Sample instances.yml File

The following Table 1 defines the function of each variable present in the instances.yml file.

Table 1: Description of Variables in Instances.yml file

Instances

Description

CONTROLLER_NODES

Enter the management interface IP address of the controller node.

The default value is either populated from the IP address in the instances.yml file or the IP address provided while adding the server from contrail command UI.

CONTROLLER_NODES is a meta variable that is used to populate other unpopulated nodes like CONFIG_NODES, CONTROL_NODES, ANALYTICS_NODES, and others.

CONTROL_NODES

Enter the data interface IP address of the controller node.

The default value is populated from the CONTROLLER_NODES variable.

The CONTROL_NODES variable also indicates the interfaces on which the control services can function.

kolla_internal_vip_address

Enter the ctrl-data-network IP address.

kolla_internal_vip_address is a virtual IP address that separates internal communication requests.

kolla_external_vip_address

Enter the management network IP address.

kolla_external_vip_address is a virtual IP address that separates external communication requests.

KEYSTONE_AUTH_HOST

Enter the IP address of the host, which has AUTH_MODE set to keystone.

The default value is populated automatically.

CLOUD_ORCHESTRATOR

Enter the name of orchestrator you are using.

Default value: none.

A CLOUD_ORCHESTRATOR is the platform that automates provisioning of cloud services.

CONTRAIL_VERSION

Enter the Contrail version number.

Default value: latest.

RABBITMQ_NODE_PORT

Enter the port number assigned to RabbitMQ node.

Default value: 5672.

RabbitMQ is a software that provides message queuing service, which is an efficient method of exchanging data between applications and servers.

VROUTER_GATEWAY

Enter the gateway IP address of the virtual router. The default gateway assigned to the virtual router is known as virtual router gateway.

The default value is the default gateway IP address of management subnet in case of single interface setup.

The VROUTER_GATEWAY is default gateway IP address for the compute nodes in the contrail cluster.

ENCAP_PRIORITY

ENCAP_PRIORITY is used to set the order of Encapsulation Priority for the EVPN supported methods - MPLS over UDP, MPLS over GRE And VxLAN.

Default value: MPLSoUDP,MPLSoGRE,VXLAN.

AUTH_MODE

Enter the desired keystone authentication mode.

Default value: noauth.

KEYSTONE_AUTH_URL_VERSION

Enter the URL of the Keystone authentication server.

Default value: /v2.0.

Keystone is a Opentack identity service. All Openstack operations are authenticated via the keystone server.

OPENSTACK_VERSION

Enter the software version number of the Openstack platform.

Default value: queens.

enable_haproxy

Enter yes to enable haproxy.

Enter no to disable haproxy.

Default value: no.

High Availability Proxy (Haproxy) provides high availability load balancing and proxy servers in cloud networking.

enable_irony

Enter yes to deploy Ironic notification manager service container.

Default value: no.

Deploy Ironic if you want to perform Life Cycle Management in Contrail Command.

enable_swift

Enter yes to deploy Swift.

Default value: no.

Deploy Swift if you want to perform Image management in Contrail Command.

keepalived_virtual_router_id

Enter value between 0-255.

Default value: 51.

keepalived_virtual_router_id is used to configure keepalives. In Openstack HA, the keepalives are used to run and elect a master based on VRRP protocol.

keystone_admin_password

Enter keystone admin password.

Default value: contrail123.

keystone_admin_password is used to set a password for the admin to access keystone. Keystone is a Openstack identity service.