hitachivantara.vspone_block.sds_block.hv_sds_block_cluster module – Manages VSP One SDS Block and Cloud system clusters.
Note
This module is part of the hitachivantara.vspone_block collection (version 4.6.1).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install hitachivantara.vspone_block.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: hitachivantara.vspone_block.sds_block.hv_sds_block_cluster.
New in hitachivantara.vspone_block 4.1.0
Synopsis
This module allows adding storage node to the cluster, and removing storage node from the cluster.
For examples, go to URL https://github.com/hitachi-vantara/vspone-block-ansible/blob/main/playbooks/sds_block_direct/sdsb_cluster.yml
Requirements
The below requirements are needed on the host that executes this module.
python >= 3.9
Parameters
Parameter |
Comments |
|---|---|
Information required to establish a connection to the storage system. |
|
IP address or hostname of the storage system. |
|
Type of connection to the storage system. Choices:
|
|
Password for authentication. This is a required field. |
|
Username for authentication. This is a required field. |
|
Specification for the storage node to be added to or removed from the cluster. |
|
The directory where the cluster configuration file is downloaded. This is a required field when the state field is |
|
This is a valid field when the state field is Choices:
|
|
The configuration definition file to be transferred to the storage cluster. if this field is specified, storage_nodes field will be ignored if present. Required for the Add storage node to the cluster with the configuration file /Add storage node to the storage cluster on AWS cloud tasks. |
|
The ID of the storage controller node for which capacity balancing setting will be changed to value specified by attribute is_capacity_balancing_enabled. Required for the Edit the capacity balancing settings of a controller in the cluster task. |
|
Specifies the type of the configuration file to be output for download. This is a valid field when the state field is Choices:
|
|
This is a valid field when the state field is Choices:
|
|
Enables or disables capacity balancing. If this is true, capacity balancing applies. If this is false, capacity balancing does not apply. If controller_id is not specified it will be applied to the cluster, otherwise it will be applied to the controller node. Required for the Edit the capacity balancing settings of the cluster /Edit the capacity balancing settings of a controller in the cluster tasks. Choices:
|
|
The ID of the machine image be used for storage node addition or storage node replacement. Required for the Add storage node to the storage cluster on Azure cloud /Create the cluster configuration file for different export file types (AddStorageNodes) /Create the cluster configuration file for different export file types (AWS Only) tasks. |
|
The number of drives to be installed per storage node after adding the drives. The specified number of drives applies to all storage nodes. This is a required field when the export_file_type is |
|
The ID of the storage node that will be removed or replaced. This field is valid when the state field is |
|
The name of the storage node that will be removed. This field is valid when the state field is |
|
This is a valid field when the state field is Choices:
|
|
Whether to create the cluster configuration file. This is a valid field when the state field is Choices:
|
|
Setup user password. Optional for the Add storage node to the cluster with the configuration file /Add storage node to the cluster using ansible variables tasks. |
|
Whether to recover a single node. This is a valid field when the state field is Choices:
|
|
List of storage node objects. |
|
Information about the control network. Required for the Add storage node to the cluster using ansible variables task. |
|
Default IPv4 gateway for the compute network. If not provided, gateway information from the other compute node of the cluster will be used. Optional for the Add storage node to the cluster using ansible variables task. |
|
IP address (IPv4) of the storage node for the compute network. Required for the Add storage node to the cluster using ansible variables task. |
|
Default IPv6 gateway for the compute network. Optional for the Add storage node to the cluster using ansible variables task. |
|
IPv6 global addresses for the compute network. Optional for the Add storage node to the cluster using ansible variables task. |
|
IPv6 subnet prefix for the compute network. Optional for the Add storage node to the cluster using ansible variables task. |
|
MTU size of the compute network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
IPv4 subnet of the compute network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
Protocol of the compute port. Optional for the Add storage node to the cluster using ansible variables task. Choices:
|
|
Whether the compute network uses IPv6 mode. Optional for the Add storage node to the cluster using ansible variables task. Choices:
|
|
Information about the control and inter node networks. |
|
Destination networks to be set in the routing table of the control port or internode port. Up to four network addresses or ip addresses can be provided. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
Gateways (IPv4) to be set in the routing table of the control port or internode port. If not provided, gateway information from the other node of the cluster will be used. Optional for the Add storage node to the cluster using ansible variables task. |
|
Interface name to be set in the routing table of the control port or internode port. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
Information about the control network. Required for the Add storage node to the cluster using ansible variables task. |
|
IP address (IPv4) of the storage node for the control network. Required for the Add storage node to the cluster using ansible variables task. |
|
MTU size of the control network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
IPv4 subnet of the control network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
Name of the fault domain to which the storage node belongs. Required for the Add storage node to the cluster using ansible variables task. |
|
Name of the storage node. Used as the host name of the storage node. Required for the Add storage node to the cluster using ansible variables task. |
|
Information about the control network. |
|
IP address (IPv4) of the storage node for the inter node network. Required for the Add storage node to the cluster using ansible variables task. |
|
MTU size of the inter node network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
IPv4 subnet of the inter node network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
Whether the node is a master node in the cluster. Required for the Add storage node to the cluster using ansible variables task. Choices:
|
|
Number of FC target ports. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
The path of system requirements file, that describes system requirements to be updated. This field is valid and mandatory when the state field is |
|
URL (https) of Amazon S3 where the VM configuration file is to be stored at the time of each maintenance operation. This option is a mandatory parameter for the cloud model for AWS when the state field is |
|
URI (starting with “s3”) of Amazon S3 where the VMConfigurationFile.yml VM configuration file is stored. If the bucket name contains a period (.), the URI cannot be specified. This option is a mandatory parameter for the cloud model for AWS when the state field is |
|
The desired state of the storage cluster. Choices:
|
Attributes
Attribute |
Support |
Description |
|---|---|---|
Support: none |
Determines if the module should run in check mode. |
Notes
Note
Replace node operation steps for GCP platform 1) The node should be on block state before replacement. 2) Create configuration file using hv_sds_block_cluster module with state as download_config_file and export_file_type as replace_storage_node and id of the existing node. 3) Run the terraform file generated using the above step to replace the node (it will remove the existing node from GCP). 4) Create configuration file using hv_sds_block_cluster module with state as download_config_file and export_file_type as replace_storage_node with recover_single_node as true. 5) Run the terraform file generated using the above step to add the new node to GCP (it will add the new node to GCP). 6) Add the new node to the cluster using hv_sds_block_cluster module with state as replace_storage_node and node_id as the id of the existing node.
Replace node operation steps for AWS platform 1) The node should be on block state before replacement. 2) Create configuration file using hv_sds_block_cluster module with state as download_config_file and export_file_type as replace_storage_node and id of the existing node. 3) Transfer the configuration file to the S3 location specified in vm_configuration_file_s3_uri. 4) Add the new node to the cluster using hv_sds_block_cluster module with state as replace_storage_node, node_id as the id of the existing node and machine_image_id as the AMI id
Replace node operation steps for Azure platform 1) The node should be on block state before replacement. 2) Add the new node to the cluster using hv_sds_block_cluster module with state as replace_storage_node, node_id as the id of the existing node and machine_image_id as the VM image id.
Replace node operation steps for on-premise platform 1) The node should be on block state before replacement. 2) add the new node to the cluster using hv_sds_block_cluster module with state as replace_storage_node, node_id as the id of the existing node.
For Add storage node to the cluster with the configuration file
The configuration file can be downloaded by running the Download cluster configuration file playbook.
This task is supported on Bare Metal, Microsoft Azure, and Google Cloud, but not on AWS.
For Add storage node to the cluster using ansible variables
This task is supported on Bare Metal and Google Cloud, but not on AWS or Microsoft Azure.
For Remove storage node from the cluster by storage node ID
This task is supported on Bare Metal, Google Cloud (only for storage nodes that failed during the Add Storage Nodes task), and Microsoft Azure, but not on AWS.
For Remove the storage node from the cluster by storage node name
This task is supported on Bare Metal, Google Cloud (only for storage nodes that failed during the Add Storage Nodes task), and Microsoft Azure, but not on AWS.
For Download cluster configuration file
Supported on Bare Metal, Google Cloud, and Microsoft Azure. Not supported on AWS.
For Create the cluster configuration file and then download it
Supported on Bare Metal, Google Cloud, and Microsoft Azure. Not supported on AWS.
For Create the cluster configuration file for different export file types (AddStorageNodes)
Supported on Bare Metal, Google Cloud, and Microsoft Azure. Not supported on AWS.
For Create the cluster configuration file for different export file types (AddDrives)
Supported on Bare Metal, Google Cloud, and Microsoft Azure. Not supported on AWS.
For Create the cluster configuration file for different export file types (AWS Only)
This task applies exclusively to AWS and requires an additional parameter, template_s3_url.
Examples
- name: Add storage node to the cluster with the configuration file
hitachivantara.vspone_block.sds_block.hv_sds_block_cluster:
connection_info:
address: storage1.company.com
username: "admin"
password: "secret"
state: "add_storage_node"
spec:
configuration_file: "/tmp/download2/SystemConfigurationFile.csv"
setup_user_password: "CHANGE_ME_SET_YOUR_PASSWORD"
- name: Add storage node to the cluster using ansible variables
hitachivantara.vspone_block.sds_block.hv_sds_block_cluster:
connection_info:
address: storage1.company.com
username: "admin"
password: "secret"
state: "add_storage_node"
spec:
setup_user_password: "CHANGE_ME_SET_YOUR_PASSWORD"
storage_nodes:
- host_name: "SDSB-NODE6"
fault_domain_name: "SC01-PD01-FD01"
is_cluster_master_role: false
control_network:
control_network_ip: "10.76.34.106"
internode_network:
internode_network_ip: "192.168.210.106"
control_internode_network:
control_internode_network_route_destinations:
- "default"
control_internode_network_route_gateways:
- "10.76.34.1"
control_internode_network_route_interfaces:
- "control"
compute_networks:
- compute_network_ip: "10.76.27.106"
compute_network_gateway: "10.76.27.1"
- name: Remove storage node from the cluster by storage node ID
hitachivantara.vspone_block.sds_block.hv_sds_block_cluster:
connection_info:
address: storage1.company.com
username: "admin"
password: "secret"
state: "remove_storage_node"
spec:
node_id: "8deb71e9-cdba-4002-94bc-c2f6f7a1bee7"
- name: Remove storage node from the cluster by storage node name
hitachivantara.vspone_block.sds_block.hv_sds_block_cluster:
connection_info:
address: storage1.company.com
username: "admin"
password: "secret"
state: "remove_storage_node"
spec:
node_name: "vssbesxi1"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
A success or failure message for the task. Returned: always |
|
A success or failure message for the task. Returned: success Sample: |