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.8.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 |
|---|---|
connection_info dictionary / required | Information required to establish a connection to the storage system. |
|
address string / required |
IP address or hostname of the storage system. |
|
connection_type string |
Type of connection to the storage system. Choices:
|
|
password string / required |
Password for authentication. This is a required field. |
|
username string / required |
Username for authentication. This is a required field. |
spec dictionary | Specification for the storage node to be added to or removed from the cluster. |
|
config_file_location string |
The directory where the cluster configuration file is downloaded. This is a required field when the state field is |
|
config_parameter_setting_mode boolean |
This is a valid field when the state field is Choices:
|
|
configuration_file string |
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. |
|
controller_id string |
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. |
|
export_file_type string |
Specifies the type of the configuration file to be output for download. This is a valid field when the state field is Choices:
|
|
force boolean |
This is a valid field when the state field is Choices:
|
|
is_capacity_balancing_enabled boolean |
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:
|
|
machine_image_id string |
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. |
|
no_of_drives integer |
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 |
|
node_id string |
The ID of the storage node that will be removed or replaced. This field is valid when the state field is |
|
node_name string |
The name of the storage node that will be removed. This field is valid when the state field is |
|
reboot boolean |
This is a valid field when the state field is Choices:
|
|
refresh boolean |
Whether to create the cluster configuration file. This is a valid field when the state field is Choices:
|
|
setup_user_password string |
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. |
|
should_recover_single_node boolean |
Whether to recover a single node. This is a valid field when the state field is Choices:
|
|
storage_nodes list / elements=dictionary |
List of storage node objects. |
|
compute_networks list / elements=dictionary / required |
Information about the control network. Required for the Add storage node to the cluster using ansible variables task. |
|
compute_network_gateway string |
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. |
|
compute_network_ip string / required |
IP address (IPv4) of the storage node for the compute network. Required for the Add storage node to the cluster using ansible variables task. |
|
compute_network_ipv6_gateway string |
Default IPv6 gateway for the compute network. Optional for the Add storage node to the cluster using ansible variables task. |
|
compute_network_ipv6_globals list / elements=string |
IPv6 global addresses for the compute network. Optional for the Add storage node to the cluster using ansible variables task. |
|
compute_network_ipv6_subnet_prefix string |
IPv6 subnet prefix for the compute network. Optional for the Add storage node to the cluster using ansible variables task. |
|
compute_network_mtu_size integer |
MTU size of the compute network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
compute_network_subnet string |
IPv4 subnet of the compute network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
compute_port_protocol string |
Protocol of the compute port. Optional for the Add storage node to the cluster using ansible variables task. Choices:
|
|
is_compute_network_ipv6_mode boolean |
Whether the compute network uses IPv6 mode. Optional for the Add storage node to the cluster using ansible variables task. Choices:
|
|
control_internode_network dictionary |
Information about the control and inter node networks. |
|
control_internode_network_route_destinations list / elements=string |
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: |
|
control_internode_network_route_gateways list / elements=string |
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. |
|
control_internode_network_route_interfaces list / elements=string |
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: |
|
control_network dictionary / required |
Information about the control network. Required for the Add storage node to the cluster using ansible variables task. |
|
control_network_ip string / required |
IP address (IPv4) of the storage node for the control network. Required for the Add storage node to the cluster using ansible variables task. |
|
control_network_mtu_size integer |
MTU size of the control network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
control_network_subnet string |
IPv4 subnet of the control network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
fault_domain_name string / required |
Name of the fault domain to which the storage node belongs. Required for the Add storage node to the cluster using ansible variables task. |
|
host_name string / required |
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. |
|
internode_network dictionary / required |
Information about the control network. |
|
internode_network_ip string / required |
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. |
|
internode_network_mtu_size integer |
MTU size of the inter node network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
internode_network_subnet string |
IPv4 subnet of the inter node network. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
is_cluster_master_role boolean |
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_port integer |
Number of FC target ports. Optional for the Add storage node to the cluster using ansible variables task. Default: |
|
system_requirement_file string |
The path of system requirements file, that describes system requirements to be updated. This field is valid and mandatory when the state field is |
|
template_s3_url string |
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 |
|
vm_configuration_file_s3_uri string |
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 |
state string | The desired state of the storage cluster. Choices:
|
Attributes
Attribute | Support | Description |
|---|---|---|
check_mode | 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 |
|---|---|
storage_nodes dictionary | A success or failure message for the task. Returned: always |
|
clusters string |
A success or failure message for the task. Returned: success Sample: |
Collection links
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/hitachivantara/vspone_block/sds_block.hv_sds_block_cluster_module.html