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.

REST Endpoint: /mgmt/shared/ha/add-peer-task

Requests

POST /mgmt/shared/ha/add-peer-task

To add a BIG-IQ as to a HA configuration you can send a POST request to shared/ha/add-peer-task endpoint.

Request Parameters

Name Type Required Description
fingerprint string True The fingerprint of the secondary BIG-IQ. You can obtain the finger print by sending a GET request to /shared/ssh-trust-setup?ipAddress=<secondary’s IP>. See the the quorumFingerprint section for a similar example.
floatingIpAddress string Optional and can be set only if useQuorumHA is TRUE. The floating IP address of the primary BIG-IQ in the HA configuration. The floating IP Address must be on the same network segment as the local management address (interface eth0) of the BIG-IQ systems in the HA configuration, and not any of the discovery addresses (self IP addresses). This does not restrict HA traffic; HA traffic can be on any of the available interfaces. Floating IP addresses are not supported if the primary and secondary BIG-IQs are in a public cloud environment such as AWS, Azure or VMware. If you do not use a floating IP address and the primary BIG-IQ fails over, you must manually redirect your application traffic to the previously-designated secondary BIG-IQ.
ipAddress string True IP address of the BIG-IQ to add as the secondary BIG-IQ.
password string True Administrator’s password of the secondary BIG-IQ.
quorumFingerprint string Required only if useQuorumHA is TRUE. The fingerprint of the quorum DCD. This fingerprint can be obtained by sending a GET request to /shared/ssh-trust-setup?ipAddress=<Quorum’s IP> See the the quorumFingerprint section for a similar example.
quorumIpAddress string Required only if useQuorumHA is TRUE. IP address of the DCD that will act as the quorum device. The DCD must be discovered on the current device before setting it as the quorum.
quorumRootPassword string Required only if useQuorumHA is TRUE. Root password of the quorum DCD.
rootPassword string True Root password if the secondary BIG-IQ.
useQuorumHA boolean True If TRUE, the HA will be configured in auto failover mode. If FALSE, the HA will be configured in manual failover mode.
userName string True Administrator’s username on the secondary BIG IQ.

Query Parameters

None

Response

The JSON in the response can contain the following parameters.

HTTP/1.1 200 OK

Name Type Description
fingerprint string The fingerprint of the secondary BIG-IQ
floatingIpAddress string The floating IP assigned to the auto failover HA. Present only useQuorumHA is true.
id string The uuid identifier of the task.
identityReferences object References to users provided as links.
     link string URL to a user.
ipAddress string IP address of the secondary BIG-IQ.
ownerMachineId string GUID machine id.
password string Administrator password for the secondary BIG-IQ.
quorumFingerprint string The fingerprint of the quorum DCD device. Seen only if useQuorumHA is true. See the the quorumFingerprint section for an example of how the fingerprint can be obtained by sending a GET request.
quorumIpAddress string IP address of the quorum DCD. Present only if useQuorumHA is true.
quorumRootPassword string Root password for the quorum device. Present only if useQuorumHA is true.
rootPassword string Root password for the secondary BIG-IQ.
selfLink string Reference link to the task.
status string Status of the Add Peer task. Initially, this value can be “STARTED” and eventually updates to “FINISHED”.
useQuorumHA boolean Set to true if auto failover mode was requested.
userName string Administrator username on the secondary BIG-IQ.
userReference object Reference to the user that initiated the action.
     link string A URL to the user that started the task.

Permissions

Role Allow
admin Yes

GET /mgmt/shared/ha/add-peer-task

To check the task’s status, you can send a GET request to the add-peer-task endpoint.

Request Parameters

None

Query Parameters

None

Response

The JSON in the response can contain the following parameters.

HTTP/1.1 200 OK

Name Type Description
fingerprint string The fingerprint of the secondary BIG-IQ
floatingIpAddress string The floating IP address of the auto failover HA. Present only if useQuorumHA is true.
id string The uuid identifier of the task.
identityReferences object References to users provided as links.
     link string URL to a user.
ipAddress string IP address of the secondary BIG-IQ
ownerMachineId string GUID identifier
peerDeviceUri string selfLink of the Peer device from the device group.
peerMachineID string Machine ID of the peer BIG-IQ.
progress string Explanation of the step field.
quorumFingerprint string The fingerprint of the quorum device. Present only if useQuorumHA is true.
quorumIpAddress string IP address of the quorum DCD. Present only if useQuorumHA is true.
selfLink string Reference link to the task.
status string Status of the task. Initially, this value can be “STARTED” and eventually updates to “FINISHED”. When there is an error encountered in the task, the status changes to “FAILED”.
step string The value of step indicates the action performed by the task. See the the Step Values section an explanation of the values.
useQuorumHA boolean If true, auto failover mode was requested.
userName string Administrator username of the secondary BIG-IQ.
userReference object Reference to the user that initiated the action.
     link string A URL to the user that started the task.

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"
}