HA Add Peer¶
Overview¶
You can use the HA Add Peer API to add a BIG-IQ to the BIG-IQ HA configuration. Use the HA Failover State API to get the current HA failover state of the BIG-IQ high-availability (HA) configuration. Use the HA Remove Standby API to remove the standby mode from all BIG-IQs in the HA configuration. Use the HA Promote API to promote the secondary BIG-IQ into the primary BIG-IQ. Use the HA Reset API to reset a primary or secondary BIG IQ in a HA configuration to the standalone mode.
A BIG-IQ high availability (HA) configuration can ensure the continuous management of your BIG-IPs, by a standby BIG-IQ, in the event your primary BIG-IQ goes down. BIG-IQ offers the options of either manual failover mode or auto failover mode. When using the manual failover mode, manual intervention is required to promote the secondary BIG-IQ to become the primary BIG-IQ managing your BIG-IPs. To use manual failover mode, you require two BIG-IQs to act as the primary and secondary and both must be in the same network segment and have the same configuration. When using the auto failover mode, if the primary BIG-IQ goes down, a quorum DCD decides automatically to promote the secondary BIG-IQ to become the primary BIG-IQ. To use the auto failover mode, you require two BIG-IQs to act as primary and secondary BIG-IQs and a data collection device (DCD) to act as the quorum device.
Requests¶
quorumFingerprint¶
The fingerprint of the quorum DCD. This fingerprint can be obtained by sending a GET request as follows.
GET https://192.0.2.0/mgmt/shared/ssh-trust-setup?ipAddress=10.145.82.96
For example the response can looks similar to the following.
{
"fingerprint": "2048 fa:f1:c1:04:70:83:08:10:f3:bf:ec:83:04:a9:c2:cf 10.145.82.96 (RSA)",
"generation": 0,
"lastUpdateMicros": 0
}
Step Values¶
The step parameter indicates the action performed by the task. The step parameter can have the following values.
Value | Meaning |
---|---|
ADD_TO_HA_GROUP | Adding the peer to the BIG-IQ device group. |
CHECK_FIREWALL_CONNECTIVITY | Checking connectivity for required ports. |
CHECK_REPLICA_SET_CONFIGURATION | Checking the database replica set configuration. |
CONFIGURE_QUORUM_HA | Configure auto failover HA. |
CONFIGURING_ZONE | Configuring the peer zone locally. |
CREATE_FILE_SYNC_SCHEDULE | Creating a file replication schedule. |
ESTABLISH_QUORUM_SSH_TRUST | Establishing SSH trust with the quorum device. |
ESTABLISH_SSH_TRUST | Establish SSH trust between the primary and secondary BIG-IQs. |
FINAL_PHASE_DONE | Complete |
GET_PEER_ZONE | Getting the zone of the peer. |
RUN_ADD_PEER_SCRIPT | Configuring database replication |
STARTING_PHASE | Starting |
TEARDOWN_PRIMARY_HA_DEVICE | Remove previous HA configuration on primary device |
TEARDOWN_QUORUM_HA_DEVICE | Remove previous HA configuration on quorum device |
TEARDOWN_SECONDARY_HA_DEVICE | Remove previous HA configuration on secondary device |
VERIFY_QUORUM_SSH_CONNECTIVITY | Verifying the SSH trust with the quorum device. |
VERIFY_SSH_CONNECTIVITY | Verifying the SSH connectivity between the primary and secondary BIG-IQs. |
WAIT_FOR_PEER_ACTIVE | Waiting for the peer BIG-IQ to become active in the BIG-IQ device group. |
WAIT_FOR_PEER_RESTJAVAD_UP | Waiting for the peer BIG-IQ to restart. |
Permissions¶
Role | Allow |
---|---|
admin | Yes |
Examples¶
POST to create HA configuration in auto failover mode¶
The following example adds a BIG-IQ and creates a HA configuration in auto failover mode.
POST https://192.0.2.0/mgmt/shared/ha/add-peer-task
The JSON in the body of the POST request can look similar to the following example.
{
"ipAddress": "10.145.82.96",
"userName": "admin",
"password": "admin",
"fingerprint": "2048 fa:f1:c1:04:70:83:08:10:f3:bf:ec:83:04:a9:c2:cf 10.145.82.96 (RSA)",
"rootPassword": "default",
"useQuorumHA": true,
"quorumIpAddress": "10.144.73.80",
"quorumFingerprint": "2048 c4:86:66:f9:49:2e:58:95:ea:40:1c:4e:8a:61:3d:21 10.144.73.80 (RSA)",
"quorumRootPassword": "default",
"floatingIpAddress": "10.145.69.204"
}
Response¶
The JSON in the response can look similar to the following example.
HTTP/1.1 200 OK
{
"ipAddress": "10.145.82.96",
"userName": "admin",
"password": "admin",
"fingerprint": "2048 fa:f1:c1:04:70:83:08:10:f3:bf:ec:83:04:a9:c2:cf 10.145.82.96 (RSA)",
"rootPassword": "default",
"useQuorumHA": true,
"quorumIpAddress": "10.144.73.80",
"quorumFingerprint": "2048 c4:86:66:f9:49:2e:58:95:ea:40:1c:4e:8a:61:3d:21 10.144.73.80 (RSA)",
"quorumRootPassword": "default",
"floatingIpAddress": "10.145.69.204",
"id": "76a223a1-e2d8-4c3e-a9a7-3017485f65ea",
"status": "STARTED",
"userReference": {
"link": "https://localhost/mgmt/shared/authz/users/admin"
},
"identityReferences": [{
"link": "https://localhost/mgmt/shared/authz/users/admin"
}],
"ownerMachineId": "61b7d619-b9b5-443d-ac38-bf2b3fb59f55",
"taskWorkerGeneration": 1,
"generation": 1,
"lastUpdateMicros": 1555016142508528,
"kind": "shared:ha:add-peer-task:addpeertaskitemstate",
"selfLink": "https://localhost/mgmt/shared/ha/add-peer-task/76a223a1-e2d8-4c3e-a9a7-3017485f65ea"
}
POST to create HA configuration in manual failover mode¶
The following example adds a BIG-IQ and creates a HA configuration in manual failover mode.
POST https://192.0.2.0/mgmt/shared/ha/add-peer-task
The JSON in the body of the POST request can look similar to the following example.
{
"ipAddress": "10.145.82.96",
"userName": "admin",
"password": "admin",
"fingerprint": "2048 fa:f1:c1:04:70:83:08:10:f3:bf:ec:83:04:a9:c2:cf 10.145.82.96 (RSA)",
"rootPassword": "default",
"useQuorumHA": false
}
Response¶
The JSON in the response can look similar to the following example.
HTTP/1.1 200 OK
{
"ipAddress": "10.145.82.96",
"userName": "admin",
"password": "admin",
"fingerprint": "2048 fa:f1:c1:04:70:83:08:10:f3:bf:ec:83:04:a9:c2:cf 10.145.82.96 (RSA)",
"rootPassword": "default",
"useQuorumHA": false,
"id": "76a223a1-e2d8-4c3e-a9a7-3017485f65ea",
"status": "STARTED",
"userReference": {
"link": "https://localhost/mgmt/shared/authz/users/admin"
},
"identityReferences": [{
"link": "https://localhost/mgmt/shared/authz/users/admin"
}],
"ownerMachineId": "61b7d619-b9b5-443d-ac38-bf2b3fb59f55",
"taskWorkerGeneration": 1,
"generation": 1,
"lastUpdateMicros": 1555016142508528,
"kind": "shared:ha:add-peer-task:addpeertaskitemstate",
"selfLink": "https://localhost/mgmt/shared/ha/add-peer-task/76a223a1-e2d8-4c3e-a9a7-3017485f65ea"
}
GET to retrieve the task’s status¶
The following example polls for the task’s status. The value of status eventually changes to FINISHED after the task completes.
GET https://192.0.2.0/mgmt/shared/ha/add-peer-task
Response for auto failover mode¶
The JSON in the response can look similar to the following example.
HTTP/1.1 200 OK
{
"items": [{
"endDateTime": "2019-07-02T16:20:54.809-0700",
"fingerprint": "2048 e4:ae:df:8d:78:7b:aa:7e:4d:c8:20:41:67:0e:d9:80 10.145.68.214 (RSA)",
"floatingIpAddress": "10.145.69.204",
"generation": 20,
"id": "76a223a1-e2d8-4c3e-a9a7-3017485f65ea",
"identityReferences": [{
"link": "https://localhost/mgmt/shared/authz/users/admin"
}],
"ipAddress": "10.145.82.96",
"kind": "shared:ha:add-peer-task:addpeertaskitemstate",
"lastUpdateMicros": 1562109654858555,
"ownerMachineId": "61b7d619-b9b5-443d-ac38-bf2b3fb59f55",
"peerDeviceUri": "https://localhost/mgmt/shared/resolver/device-groups/cm-shared-all-big-iqs/devices/a72bf801-d555-45f8-b2c2-d90eea73e141",
"peerMachineID": "a72bf801-d555-45f8-b2c2-d90eea73e141",
"progress": "Complete",
"quorumFingerprint": "2048 18:4b:0d:7e:10:9d:0d:4a:85:f9:d4:03:63:b2:fa:06 10.145.66.52 (RSA)",
"quorumIpAddress": "10.144.73.80",
"selfLink": "https://localhost/mgmt/shared/ha/add-peer-task/76a223a1-e2d8-4c3e-a9a7-3017485f65ea",
"startDateTime": "2019-07-02T16:16:01.996-0700",
"status": "FINISHED",
"step": "FINAL_PHASE_DONE",
"useQuorumHA": true,
"userName": "admin",
"userReference": {
"link": "https://localhost/mgmt/shared/authz/users/admin"
},
"username": "admin",
"zone": "default"
}],
"generation": 21,
"kind": "shared:ha:add-peer-task:addpeertaskcollectionstate",
"lastUpdateMicros": 1562109654861028,
"selfLink": "https://localhost/mgmt/shared/ha/add-peer-task"
}
Response for manual failover mode¶
The JSON in the response can look similar to the following example.
HTTP/1.1 200 OK
{
"items": [{
"fingerprint": "2048 fa:f1:c1:04:70:83:08:10:f3:bf:ec:83:04:a9:c2:cf 10.145.82.96 (RSA)",
"generation": 9,
"id": "0b36ecc1-3b91-488e-8491-c745b0b0f9b0",
"identityReferences": [{
"link": "https://localhost/mgmt/shared/authz/users/admin"
}],
"ipAddress": "10.145.82.96",
"kind": "shared:ha:add-peer-task:addpeertaskitemstate",
"lastUpdateMicros": 1562110417302363,
"ownerMachineId": "1ceb4f18-8cb3-40bb-b5af-10ca093cfaac",
"peerDeviceUri": "https://localhost/mgmt/shared/resolver/device-groups/cm-shared-all-big-iqs/devices/a72bf801-d555-45f8-b2c2-d90eea73e141",
"peerMachineID": "a72bf801-d555-45f8-b2c2-d90eea73e141",
"progress": "Waiting for Peer BIG-IQ to Restart",
"selfLink": "https://localhost/mgmt/shared/ha/add-peer-task/76a223a1-e2d8-4c3e-a9a7-3017485f65ea",
"startDateTime": "2019-07-02T16:32:25.656-0700",
"status": "STARTED",
"step": "WAIT_FOR_PEER_RESTJAVAD_UP",
"userName": "admin",
"userReference": {
"link": "https://localhost/mgmt/shared/authz/users/admin"
},
"username": "admin",
"zone": "default"
}],
"generation": 1,
"kind": "shared:ha:add-peer-task:addpeertaskcollectionstate",
"lastUpdateMicros": 1560534653329961,
"selfLink": "https://localhost/mgmt/shared/ha/add-peer-task"
}