Workflow 1: Create a single-node evaluation cluster on ESXi
You can deploy a single-node ONTAP Select cluster on a VMware ESXi host managed by vCenter. The cluster is created with an evaluation license.
The cluster creation workflow differs in the following situations:
-
The ESXi host is not managed by vCenter (standalone host)
-
Multiple nodes or hosts are used within the cluster
-
Cluster is deployed in a production environment with a purchased license
-
The KVM hypervisor is used instead of VMware ESXi
-
Beginning with ONTAP Select 9.10.1, you can no longer deploy a new cluster on the KVM hypervisor.
-
Beginning with ONTAP Select 9.11.1, all manageability functionality is no longer available for existing KVM clusters and hosts, except for the take offline and delete functions.
-
1. Register vCenter server credential
When deploying to an ESXi host managed by a vCenter server, you must add a credential before registering the host. The Deploy administration utility can then use the credential to authenticate to vCenter.
Category | HTTP verb | Path |
---|---|---|
Deploy |
POST |
/security/credentials |
- Curl
curl -iX POST -H 'Content-Type: application/json' -u admin:<password> -k -d @step01 'https://10.21.191.150/api/security/credentials'
- JSON input (step01)
{
"hostname": "vcenter.company-demo.com",
"type": "vcenter",
"username": "misteradmin@vsphere.local",
"password": "mypassword"
}
- Processing type
-
Asynchronous
- Output
-
-
Credential ID in the location response header
-
Job object
-
2. Register a hypervisor host
You must add a hypervisor host where the virtual machine containing the ONTAP Select node will run.
Category | HTTP verb | Path |
---|---|---|
Cluster |
POST |
/hosts |
- Curl
curl -iX POST -H 'Content-Type: application/json' -u admin:<password> -k -d @step02 'https://10.21.191.150/api/hosts'
- JSON input (step02)
{
"hosts": [
{
"hypervisor_type": "ESX",
"management_server": "vcenter.company-demo.com",
"name": "esx1.company-demo.com"
}
]
}
- Processing type
-
Asynchronous
- Output
-
-
Host ID in the location response header
-
Job object
-
3. Create a cluster
When you create an ONTAP Select cluster, the basic cluster configuration is registered and the node names are automatically generated by Deploy.
Category | HTTP verb | Path |
---|---|---|
Cluster |
POST |
/clusters |
- Curl
-
The query parameter node_count should be set to 1 for a single-node cluster.
curl -iX POST -H 'Content-Type: application/json' -u admin:<password> -k -d @step03 'https://10.21.191.150/api/clusters? node_count=1'
- JSON input (step03)
{
"name": "my_cluster"
}
- Processing type
-
Synchronous
- Output
-
-
Cluster ID in the location response header
-
4. Configure the cluster
There are several attributes you must provide as part of configuring the cluster.
Category | HTTP verb | Path |
---|---|---|
Cluster |
PATCH |
/clusters/{cluster_id} |
- Curl
-
You must provide the cluster ID.
curl -iX PATCH -H 'Content-Type: application/json' -u admin:<password> -k -d @step04 'https://10.21.191.150/api/clusters/CLUSTERID'
- JSON input (step04)
{
"dns_info": {
"domains": ["lab1.company-demo.com"],
"dns_ips": ["10.206.80.135", "10.206.80.136"]
},
"ontap_image_version": "9.5",
"gateway": "10.206.80.1",
"ip": "10.206.80.115",
"netmask": "255.255.255.192",
"ntp_servers": {"10.206.80.183"}
}
- Processing type
-
Synchronous
- Output
-
None
5. Retrieve the node name
The Deploy administration utility automatically generates the node identifiers and names when a cluster is created. Before you can configure a node, you must retrieve the assigned ID.
Category | HTTP verb | Path |
---|---|---|
Cluster |
GET |
/clusters/{cluster_id}/nodes |
- Curl
-
You must provide the cluster ID.
curl -iX GET -u admin:<password> -k 'https://10.21.191.150/api/clusters/CLUSTERID/nodes?fields=id,name'
- Processing type
-
Synchronous
- Output
-
-
Array records each describing a single node with the unique ID and name
-
6. Configure the nodes
You must provide the basic configuration for the node, which is the first of three API calls used to configure a node.
Category | HTTP verb | Path |
---|---|---|
Cluster |
PATH |
/clusters/{cluster_id}/nodes/{node_id} |
- Curl
-
You must provide the cluster ID and node ID.
curl -iX PATCH -H 'Content-Type: application/json' -u admin:<password> -k -d @step06 'https://10.21.191.150/api/clusters/CLUSTERID/nodes/NODEID'
- JSON input (step06)
-
You must provide the host ID where the ONTAP Select node will run.
{
"host": {
"id": "HOSTID"
},
"instance_type": "small",
"ip": "10.206.80.101",
"passthrough_disks": false
}
- Processing type
-
Synchronous
- Output
-
None
7. Retrieve the node networks
You must identify the data and management networks used by the node in the single-node cluster. The internal network is not used with a single-node cluster.
Category | HTTP verb | Path |
---|---|---|
Cluster |
GET |
/clusters/{cluster_id}/nodes/{node_id}/networks |
- Curl
-
You must provide the cluster ID and node ID.
curl -iX GET -u admin:<password> -k 'https://10.21.191.150/api/ clusters/CLUSTERID/nodes/NODEID/networks?fields=id,purpose'
- Processing type
-
Synchronous
- Output
-
-
Array of two records each describing a single network for the node, including the unique ID and purpose
-
8. Configure the node networking
You must configure the data and management networks. The internal network is not used with a single-node cluster.
Issue the following API call two times, once for each network. |
Category | HTTP verb | Path |
---|---|---|
Cluster |
PATCH |
/clusters/{cluster_id}/nodes/{node_id}/networks/{network_id} |
- Curl
-
You must provide the cluster ID, node ID, and network ID.
curl -iX PATCH -H 'Content-Type: application/json' -u admin:<password> -k -d @step08 'https://10.21.191.150/api/clusters/ CLUSTERID/nodes/NODEID/networks/NETWORKID'
- JSON input (step08)
-
You need to provide the name of the network.
{
"name": "sDOT_Network"
}
- Processing type
-
Synchronous
- Output
-
None
9. Configure the node storage pool
The final step in configuring a node is to attach a storage pool. You can determine the available storage pools through the vSphere web client, or optionally through the Deploy REST API.
Category | HTTP verb | Path |
---|---|---|
Cluster |
PATCH |
/clusters/{cluster_id}/nodes/{node_id}/networks/{network_id} |
- Curl
-
You must provide the cluster ID, node ID, and network ID.
curl -iX PATCH -H 'Content-Type: application/json' -u admin:<password> -k -d @step09 'https://10.21.191.150/api/clusters/ CLUSTERID/nodes/NODEID'
- JSON input (step09)
-
The pool capacity is 2 TB.
{
"pool_array": [
{
"name": "sDOT-01",
"capacity": 2147483648000
}
]
}
- Processing type
-
Synchronous
- Output
-
None
10. Deploy the cluster
After the cluster and node have been configured, you can deploy the cluster.
Category | HTTP verb | Path |
---|---|---|
Cluster |
POST |
/clusters/{cluster_id}/deploy |
- Curl
-
You must provide the cluster ID.
curl -iX POST -H 'Content-Type: application/json' -u admin:<password> -k -d @step10 'https://10.21.191.150/api/clusters/CLUSTERID/deploy'
- JSON input (step10)
-
You must provide the password for the ONTAP administrator account.
{
"ontap_credentials": {
"password": "mypassword"
}
}
- Processing type
-
Asynchronous
- Output
-
-
Job object
-