Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Announcement: Try the Ask AI chatbot for answers to your technical questions about Juniper products and solutions.

close
header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
list Table of Contents
file_download PDF
{ "lLangCode": "en", "lName": "English", "lCountryCode": "us", "transcode": "en_US" }
English
keyboard_arrow_right

Adding a New Compute Node to Existing Contrail Cluster

date_range 28-Aug-23
Note:

We recommend using Contrail Command to add compute nodes to existing Contrail clusters in most Contrail Networking deployments. See Adding a New Compute Node to Existing Contrail Cluster Using Contrail Command.

The procedure in this document should only be performed by network administrators with significant YAML file expertise in environments not using the Contrail Command GUI.

This is initial process for adding a new compute node to existing Contrail OpenStack cluster.

Assume Contrail cluster is successfully provisioned by the following instances.yaml file.

Note:

The password values in this output are included for illustrative purposes only. We strongly recommend creating a unique username and password combination whenever possible.

content_copy zoom_out_map
provider_config:                                                                                
  bms:
    ssh_pwd: c0ntrail123
    ssh_user: root
    ntpserver: x.x.x.x
    domainsuffix: local
instances:
  srvr1:
    provider: bms
    ip: 192.168.1.51
    roles:
      config_database:
      config:
      control:
      analytics_database:
      analytics:
      webui:
      openstack:
  srvr2:
    provider: bms
    ip: 192.168.1.52
    roles:
      config_database:
      config:
      control:
      analytics_database:
      analytics:
      webui:
      openstack:
  srvr3:
    provider: bms
    ip: 192.168.1.53
    roles:
      config_database:
      config:
      control:
      analytics_database:
      analytics:
      webui:
      openstack:
  srvr4:                                                       
    provider: bms
    ip: 192.168.1.54
    roles:
      vrouter:
      openstack_compute:
contrail_configuration:
  CONTRAIL_VERSION: 5.1.0-0.40-ocata
  CONTROL_DATA_NET_LIST: 192.168.10.0/24
  RABBITMQ_NODE_PORT: 5673
  VROUTER_GATEWAY: 192.168.10.1
  IPFABRIC_SERVICE_HOST: 192.168.10.150
  KEYSTONE_AUTH_URL_VERSION: /v3
kolla_config:
  kolla_globals:
    kolla_internal_vip_address: 192.168.10.150
    kolla_external_vip_address: 192.168.1.150

Run the following commands to add a new compute node to an existing Contrail OpenStack cluster.

  1. Edit the instances.yaml file to add a compute node, srvr5.
    Note:

    The password values in this output are included for illustrative purposes only. We strongly recommend creating a unique username and password combination whenever possible.

    content_copy zoom_out_map
    provider_config:                                                                                 
      bms:
        ssh_pwd: c0ntrail123
        ssh_user: root
        ntpserver: x.x.x.x
        domainsuffix: local
    instances:
      srvr1:
        provider: bms
        ip: 192.168.1.51
        roles:
          config_database:
          config:
          control:
          analytics_database:
          analytics:
          webui:
          openstack:
      srvr2:
        provider: bms
        ip: 192.168.1.52
        roles:
          config_database:
          config:
          control:
          analytics_database:
          analytics:
          webui:
          openstack:
      srvr3:
        provider: bms
        ip: 192.168.1.53
        roles:
          config_database:
          config:
          control:
          analytics_database:
          analytics:
          webui:
          openstack:
      srvr4:                                                       
        provider: bms
        ip: 192.168.1.54
        roles:
          vrouter:
          openstack_compute:
      srvr5:                                                       
        provider: bms
        ip: 192.168.1.55
        roles:
          vrouter:
          openstack_compute:
    
    contrail_configuration:
      CONTRAIL_VERSION: 5.1.0-0.38-ocata
      CONTROL_DATA_NET_LIST: 192.168.10.0/24
      RABBITMQ_NODE_PORT: 5673
      VROUTER_GATEWAY: 192.168.10.1
      IPFABRIC_SERVICE_HOST: 192.168.10.150
      KEYSTONE_AUTH_URL_VERSION: /v3
    kolla_config:
      kolla_globals:
        kolla_internal_vip_address: 192.168.10.150
        kolla_external_vip_address: 192.168.1.150
  2. Run the configure_instances.yml playbook with the new instances.yaml file.
    content_copy zoom_out_map
    ansible-playbook -i inventory/ -e orchestrator=openstack playbooks/configure_instances.yml

    It will install the required software and also, prepare the new node for running the relevant containers.

  3. Run playbooks.
    content_copy zoom_out_map
    ansible-playbook  -i inventory/ -e orchestrator=openstack --tags nova playbooks/install_openstack.yml 
    ansible-playbook  -i inventory/ -e orchestrator=openstack playbooks/install_contrail.yml
    Note:

    The --tags nova option runs only the nova role so that the other containers are not affected.

    It is not recommended to omit the above option. If the option is omitted, especially when multiple OpenStack nodes are running with HA, the MariaDB Galera cluster will go out of sync and will not converge. In such situation, the only solution is to re-provision the entire OpenStack cluster.

You can also add or remove a compute node to existing Contrail cluster using Contrail Command UI. For details, refer to Adding a New Compute Node to Existing Contrail Cluster Using Contrail Command.

footer-navigation