Skip to content

Provisioning only Contrail Networking components (You bring in your own Openstack)

sgurumurthy edited this page Sep 1, 2017 · 2 revisions

This document talks about provisioning just the Contrail Networking docker container components and the customers are expected to bring in their own Openstack solution. We will cover both HA and non-HA provisioning of these networking components)

1. Non-HA (all in one node using smlite)

  1. Provision the networking components using the following command from the ServeManager node

/opt/contrail/contrail-server-manager/provision_container.sh -j <combined.json>

combined.json

   {
  "cluster" : [
        {
            "id": "demo-cluster",
            "parameters" : {
                "domain": "englab.juniper.net",
                "provision": {
                    "openstack":{
                        "external_openstack_ip": "10.102.93.95",
                        "keystone": {
                             "ip": "10.102.93.95",
                             "admin_user": "admin",
                             "admin_password": "<password>"
                         }
                    }
                }
            }
        }
    ],
    "server": [
            {
                "id": "<id>",
                "mac_address": "52:54:00:87:f0:02",
                "ip_address": "10.102.93.80",
                "network" : {
                      "interfaces": [
                        {
                            "ip_address": "10.102.93.80/24",
                            "mac_address": "52:54:00:87:f0:02",
                            "default_gateway": "10.102.93.1",
                            "name": "eth0"
                        }
                    ],
                    "management_interface": "eth0",
                    "provisioning": "kickstart"
                },
                "roles" : ["contrail-analytics", "contrail-analyticsdb", "contrail-controller"],
                "cluster_id": "demo-cluster",
                "subnet_mask": "255.255.255.0",
                "password": "<password>",
                "domain": "englab.juniper.net"
             }
    ],
    "image": [
        {
            "id": "<ID>",
            "category": "package",
            "type": "contrail-ubuntu-package",
            "version": "<version string>",
            "path": "< Path to contrail-networking-docker tgz>",
            "parameters": {
                "openstack_sku": "mitaka"
            }
        }
    ]
}

2. Non-HA (ServerManager in a separate node and networking components in a different node node)

a. Add the cluster using the command server-manager add cluster -f <path_to_cluster_json_file>

cluster.json

    
    "cluster" : [
        {
            "id": "<id>",
            "parameters" : {
                "domain": "englab.juniper.net",
                "provision": {
                    "openstack":{
                        "external_openstack_ip": "10.102.93.95",
                        "keystone": {
                             "ip": "10.102.93.95",
                             "admin_user": "admin",
                             "admin_password": "<password>"
                         }
                    }
                }
            }
        }
    ]
}

b. Add the severs using the command server-manager add server -f <path_to_serer_json_file>

server.json

{
"server": [
            {
                "id": "<id>",
                "mac_address": "52:54:00:87:f0:02",
                "ip_address": "10.102.93.80",
                "network" : {
                      "interfaces": [
                        {
                            "ip_address": "10.102.93.80/24",
                            "mac_address": "52:54:00:87:f0:02",
                            "default_gateway": "10.102.93.1",
                            "name": "eth0"
                        }
                    ],
                    "management_interface": "eth0",
                    "provisioning": "kickstart"
                },
                "roles" : ["contrail-analytics", "contrail-analyticsdb", "contrail-controller"],
                "cluster_id": "demo-cluster",
                "subnet_mask": "255.255.255.0",
                "password": "<password",
                "domain": "englab.juniper.net"
             }
]
}

c. Add the networking docker image using the following command server-manager add image -f <path_to_image_json_file>

image.json

{
    "image": [
        {
            "id": "<ID",
            "category": "package",
            "type": "contrail-ubuntu-package",
            "version": "contrail-networking-docker-4-0-0-14",
            "path": "<path_to_networking_docker_tgz_file>",
            "parameters": {
                "openstack_sku": "mitaka"
            }
        }
    ]
}

d. Provision the image using the command server-manager provision --cluster_id <cluster_id> <image_id_to_be_provisioned>

3. HA (Provisioned using smlite)

/opt/contrail/contrail-server-manager/provision_container.sh -j <combined.json>

combined.json

{
    "cluster" : [
        {
            "id": "demo-cluster",
            "parameters" : {
                "domain": "englab.juniper.net",
                "provision": {
                    "contrail":{
                      "ha": {
                         "contrail_internal_vip": "<control_data_interface_of_the_haproxy_node. Not_reqd_for_a_single_interface_node>",
                         "contrail_external_vip": "<mgmt_data_interface_of_the_haproxy_node>"
                      }
                    },
                    "openstack":{
                        "external_openstack_ip": "10.102.86.54",
                        "keystone": {
                             "ip": "10.102.86.54",
                             "admin_password": "admin",
                             "admin_user": "<password>"
                         }
                    }
                }
            }
        }
    ],
    "server": [
            {
                "id": "<id_1>",
                "mac_address": "52:54:00:0a:34:f7",
                "ip_address": "<mgmt_ipaddress>",
                "network" : {
                      "interfaces": [
                        {
                            "ip_address": "10.102.86.42/25",
                            "mac_address": "52:54:00:0a:34:f7",
                            "default_gateway": "10.102.86.1",
                            "name": "eth0"
                        }
                    ],
                    "management_interface": "<mgmt_interface_name>",
                    "provisioning": "kickstart"
                },
                "roles" : ["contrail-analytics", "contrail-analyticsdb", "contrail-controller"],
                "cluster_id": "demo-cluster",
                "subnet_mask": "255.255.255.128",
                "password": "<password>",
                "domain": "englab.juniper.net"
            },
            {
                "id": "<id_2>",
                "mac_address": "52:54:00:d7:2c:d2",
                "ip_address": "<mgmt_ipaddress>",
                "network" : {
                      "interfaces": [
                        {
                            "ip_address": "10.102.86.49/25",
                            "mac_address": "52:54:00:d7:2c:d2",
                            "default_gateway": "10.102.86.1",
                            "name": "eth0"
                        }
                    ],
                    "management_interface": "eth0",
                    "provisioning": "kickstart"
                },
                "roles" : ["contrail-analytics", "contrail-analyticsdb", "contrail-controller"],
                "cluster_id": "demo-cluster",
                "subnet_mask": "255.255.255.128",
                "password": "<password>",
                "domain": "englab.juniper.net"
            },
            {
                "id": "<id_3>",
                "mac_address": "52:54:00:1b:d9:6a",
                "ip_address": "<ipaddress>",
                "network" : {
                      "interfaces": [
                        {
                            "ip_address": "10.102.86.65/25",
                            "mac_address": "52:54:00:1b:d9:6a",
                            "default_gateway": "10.102.86.1",
                            "name": "eth0"
                        }
                    ],
                    "management_interface": "<mgmt_interface_name>",
                    "provisioning": "kickstart"
                },
                "roles" : ["contrail-analytics", "contrail-analyticsdb", "contrail-controller"],
                "cluster_id": "demo-cluster",
                "subnet_mask": "255.255.255.128",
                "password": "<password>",
                "domain": "englab.juniper.net"
            }
         ],
         "image": [
         {
            "id": "<ID",
            "category": "package",
            "type": "contrail-ubuntu-package",
            "version": "contrail-networking-docker-4-0-0-14",
            "path": "<path_to_networking_docker_tgz_file>",
            "parameters": {
                "openstack_sku": "mitaka"
            }
         }
     ]
}

4. HA (Provisioned using ServerManager running on a separate node and multiple instances of networking components in a separate node)

a. Add the cluster using the command server-manager add cluster -f <path_to_cluster_json_file>

cluster.json

{
    "cluster" : [
        {
            "id": "demo-cluster",
            "parameters" : {
                "domain": "englab.juniper.net",
                "provision": {
                    "contrail":{
                      "ha": {
                         "contrail_internal_vip": "<control_data_interface_of_the_haproxy_node. Not_reqd_for_a_single_interface_node>",
                         "contrail_external_vip": "<mgmt_data_interface_of_the_haproxy_node>"
                      }
                    },
                    "openstack":{
                        "external_openstack_ip": "10.102.86.54",
                        "keystone": {
                             "ip": "10.102.86.54",
                             "admin_password": "admin",
                             "admin_user": "<password>"
                         }
                    }
                }
            }
        }
    ]
}

b. Add the severs using the command server-manager add server -f <path_to_serer_json_file>

server.json

{
    "server": [
            {
                "id": "<id_1>",
                "mac_address": "52:54:00:0a:34:f7",
                "ip_address": "<mgmt_ipaddress>",
                "network" : {
                      "interfaces": [
                        {
                            "ip_address": "10.102.86.42/25",
                            "mac_address": "52:54:00:0a:34:f7",
                            "default_gateway": "10.102.86.1",
                            "name": "eth0"
                        }
                    ],
                    "management_interface": "<mgmt_interface_name>",
                    "provisioning": "kickstart"
                },
                "roles" : ["contrail-analytics", "contrail-analyticsdb", "contrail-controller"],
                "cluster_id": "demo-cluster",
                "subnet_mask": "255.255.255.128",
                "password": "<password>",
                "domain": "englab.juniper.net"
            },
            {
                "id": "<id_2>",
                "mac_address": "52:54:00:d7:2c:d2",
                "ip_address": "<mgmt_ipaddress>",
                "network" : {
                      "interfaces": [
                        {
                            "ip_address": "10.102.86.49/25",
                            "mac_address": "52:54:00:d7:2c:d2",
                            "default_gateway": "10.102.86.1",
                            "name": "eth0"
                        }
                    ],
                    "management_interface": "eth0",
                    "provisioning": "kickstart"
                },
                "roles" : ["contrail-analytics", "contrail-analyticsdb", "contrail-controller"],
                "cluster_id": "demo-cluster",
                "subnet_mask": "255.255.255.128",
                "password": "<password>",
                "domain": "englab.juniper.net"
            },
            {
                "id": "<id_3>",
                "mac_address": "52:54:00:1b:d9:6a",
                "ip_address": "<ipaddress>",
                "network" : {
                      "interfaces": [
                        {
                            "ip_address": "10.102.86.65/25",
                            "mac_address": "52:54:00:1b:d9:6a",
                            "default_gateway": "10.102.86.1",
                            "name": "eth0"
                        }
                    ],
                    "management_interface": "<mgmt_interface_name>",
                    "provisioning": "kickstart"
                },
                "roles" : ["contrail-analytics", "contrail-analyticsdb", "contrail-controller"],
                "cluster_id": "demo-cluster",
                "subnet_mask": "255.255.255.128",
                "password": "<password>",
                "domain": "englab.juniper.net"
            }
         ],
}

c. Add the networking docker image using the following command server-manager add image -f <path_to_image_json_file>

image.json

{
    "image": [
         {
            "id": "<ID",
            "category": "package",
            "type": "contrail-ubuntu-package",
            "version": "contrail-networking-docker-4-0-0-14",
            "path": "<path_to_networking_docker_tgz_file>",
            "parameters": {
                "openstack_sku": "mitaka"
            }
         }
     ]
}

d. Provision the image using the command server-manager provision --cluster_id <cluster_id> <image_id_to_be_provisioned>

Clone this wiki locally