Workflow 1: Creating a single-node evaluation cluster on ESXi Edit on GitHub Request doc changes

Contributors dmp-netapp

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

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:admin123 -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:admin123 -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:admin123 -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:admin123 -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:admin123 -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:admin123 -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:admin123 -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:admin123 -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:admin123 -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:admin123 -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