Installing a Cluster on ESI
A lessee wishing to create a cluster out of multiple leased nodes and a private network can do so by running the correct CLI commands. Alternatively, they can use the cluster CLI commands in python-esiclient to simplify the workflow involved in creating and managing their clusters.
Prerequisites
python-esiclient must be installed
The nodes in the cluster must use image-based provisioning, with the image listed with
openstack image list
Orchestrating the Cluster
Actions |
|
Orchestrate Cluster |
|
A single command is sufficient to provision a bare metal cluster and configure its networking.
Cluster Configuration File
A sample cluster configuration file is provided here:
{
"node_configs": [
{
"nodes": {
"node_uuids": ["node1"]
},
"network": {
"network_uuid": "private-network-1",
"tagged_network_uuids": ["private-network-2"],
"fip_network_uuid": "external"
},
"provisioning": {
"provisioning_type": "image",
"image_uuid": "image-name",
"ssh_key": "/path/to/ssh/key"
}
},
{
"nodes": {
"num_nodes": "2",
"resource_class": "baremetal"
},
"network": {
"network_uuid": "private-network-1"
},
"provisioning": {
"provisioning_type": "image",
"image_uuid": "image-name-2",
"ssh_key": "/path/to/ssh/key"
}
}
]
}
The config file consists of one or more node_configs
sections, each of which contains the following:
nodes
The nodes
section identifies which nodes will be used. You can either specifiy specific nodes by name or UUID:
"nodes": {
"node_uuids": ["node1"]
}
Or look for a given number of nodes of a specific resource class:
"nodes": {
"num_nodes": 2,
"resource_class": "baremetal"
}
If the requested nodes cannot be found, the orchestration command will throw an error.
network
The network
section details how nodes will be networked. Only the network_uuid
attribute is required.
"network": {
"network_uuid": "private-network-1"
}
There are two optional attributes that can be specified. tagged_network_uuids
creates a trunk port with the network specified in network_uuid
and the networks specified in tagged_network_uuids
; and fip_network_uuid
creates a floating IP on the specified network attached to the node.
"network": {
"network_uuid": "private-network-1"
"tagged_network_uuids": ["private-network-2"],
"fip_network_uuid": "external"
}
provisioning
The provisioning
section details how nodes will be provisioned. Currently only image-based provisioning is supported; all the listed attributes are required.
"provisioning": {
"provisioning_type": "image",
"image_uuid": "image-name",
"ssh_key": "/path/to/ssh/key"
}
Listing Clusters
Actions |
|
List Clusters |
|
This command lists all your clusters, along with each cluster’s associated nodes and each node’s associated resources (ports, floating IPs, etc).
Undeploying a Cluster
Actions |
|
Undeploy Cluster |
|
This command undeploys a cluster by undeploying all nodes and deleting all associated resources. Cluster UUIDs can be found by running openstack esi cluster list
.
Using this command is highly recommended, as it ensures resources are freed up so they no longer count against your quota.