setup_cluster
Issues a bootstrap request to a specified Rubrik cluster
Usage
When bootstrapping nodes the Bootstrap()
function is used to establish the connection. It allows the user to specify an interface name, which is the local network interface that will be used to connect to the Rubrik node(s). If you are attempting a bootstrap from a system with multiple interfaces, you should set this parameter. If no interface is specified, the SDK will attempt to use the first non-loopback interface it finds. Below is the specification for the Bootstrap() function.
Physical Cluster
Bootstrapping a physical cluster will only be possible using IPv6 (see mDNS below). Management and IPMI configurations are mandatory for a successful bootstrap.
Virtual Appliance
When bootstrapping a Virtual Appliance (Edge), this can be done either by using the IPv4 address as set on deployment or using IPv6 as stated below. IPMI addresses and DATA addresses can not be set and the encryption parameter should be set to "False".
Cloud cluster
Cloud Cluster instances have an IPv4 address dynamically assigned by the cloud provider, so there is no need to use mDNS for bootstrapping. Once the instances are deployed, gather the assigned IPs from the cloud provider console and use them in a similar manner to the example below. Cloud Clusters need to have the encryption parameter set to "False".
mDNS
By default, an un-bootstrapped Rubrik node will respond to multicast DNS (mDNS) queries directed to [node_serial_number].local
. It is important that mDNS resolution is working properly on system where the SDK is called from if you wish to supply [node_serial_number].local
to the Bootstrap()
function as the node_ip
value.
Any un-bootstrapped nodes on a network can be found using "avahi-browse -a" (Linux) or using a packet tracing utility filtering on mDNS (port 5353 - any OS).
mDNS resolution is not well supported on Windows, but it can be accomplished by installing the Apple Bonjour service, included with iTunes or Bonjour Print Services. mDNS is better supported on Linux and macOS, but you should verify working name resolution before using this function. If mDNS name resolution is not working on Linux, you can determine the link-local IPv6 address of the un-bootstrapped node(s) with the command avahi-resolve --name [node_serial_number].local
or by using the python-zeroconf library. The link-local IPv6 address can then be passed to the Bootstrap()
function instead of the mDNS name.
Troubleshooting
Enable logging by passing enable_logging=True
to the bootstrap function. Example:
mDNS name resolution can be verified on systemd-based Linux systems using the command systemd-resolve --status
. The resulting command should display MulticastDNS setting: resolve
or MulticastDNS setting: yes
. Additional information can be found at the links below.
Arguments
Name | Type | Description | Choices |
cluster_name | str | Unique name to assign to the Rubrik cluster. No FQDN allowed with dots. | |
admin_email | str | The Rubrik cluster sends messages for the admin account to this email address. | |
admin_password | str | Password for the admin account. Store carefully. | |
mgmt_gateway | str | IP address assigned to the management network gateway. | |
mgmt_subnet_mask | str | Subnet mask assigned to the management network. | |
node_mgmt_ips | dict | The Node Name(s) and IP(s) formatted as a dictionary for Management addresses. |
Keyword Arguments
Name | Type | Description | Choices | Default |
mgmt_vlan | int | VLAN assigned to the management network. | None | |
ipmi_gateway | str | IP address assigned to the ipmi network gateway. | None | |
ipmi_subnet_mask | str | Subnet mask assigned to the ipmi network. | None | |
ipmi_vlan | int | VLAN assigned to the ipmi network. | None | |
node_ipmi_ips | dict | The Node Name and IP formatted as a dictionary for IPMI addresses. Optional. | None | |
data_gateway | str | IP address assigned to the ipmi network gateway. | None | |
data_subnet_mask | str | Subnet mask assigned to the ipmi network. | None | |
data_vlan | int | VLAN assigned to the data network. | None | |
node_data_ips | dict | The Node Name and IP formatted as a dictionary for Data addresses. Optional. | None | |
enable_encryption | bool | Enable software data encryption at rest. For Cloud Cluster or Edge this value needs to be False. | True | |
dns_search_domains | str | The search domain that the DNS Service will use to resolve hostnames that are not fully qualified. | None | |
dns_nameservers | list | IPv4 addresses of DNS servers. | ['8.8.8.8'] | |
ntp_servers | list | FQDN or IPv4 address of a network time protocol (NTP) server. | ['pool.ntp.org'] | |
wait_for_completion | bool | Flag to determine if the function should wait for the bootstrap process to complete. | True | |
timeout | int | The number of seconds to wait to establish a connection the Rubrik cluster before returning a timeout error. | 30 |
Returns
Type | Return Value |
dict | The response returned by |
Examples
Physical Cluster Example
Virtual Appliance Example
Cloud Cluster Example
Last updated