By using Zadara Storage REST APIs it is possible to automate all operations performed through the VPSA GUI. The full API document is located here. (V2)
This article contains some examples of basic operations with volumes through the command line to simplify your VPSA adoption.
1. Example script to attach/detach volume to the server & more
The small Python script might be downloaded from the end of the article. Most VPSAs created from the end of 2013 onwards are using V2 of the REST APIs, and the appropriate script should be chosen.
Usage: zadara_vpsa_ops.py -i vpsa_ip -k key -o operation [options]
Options:
-h, --help show this help message and exit
-i IP, --ip=IP VPSA IP
-k KEY, --key=KEY Access key for the VPSA
-o OP, --operation=OP Operations: [create_volume|attach|detach|list_volumes]
-v VOLUME, --volume=VOLUME Volume name
-r RAID, --raidgroup=RAID RAID Group name (optional)
-z SIZE, --size=SIZE Volume size, GB
-t VOL_TYPE, --type=VOL_TYPE Volume type: [nfs|block] (default: nfs)
-s SERVER, --server=SERVER Server name (optional)
The IP of your VPSA might be retrieved from the VPSA Management console or from the VPSA GUI (Controllers / iSCSI IP)
The Access Key is presented in VPSA GUI (Access Control / Users section)
Attach NFS or Block volume to the current server:
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o attach -v vol1 -t nfs
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o attach -v vol2 -t block
Attach NFS or Block volume to another server:
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o attach -v vol1 -t nfs -s AMAZONA-S77ARGH
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o attach -v vol2 -t block -s AMAZONA-S77ARGH
Detach NFS or Block volume from the current server:
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o detach -v vol1
Detach NFS or Block volume from another server:
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o detach -v vol1 -s AMAZONA-S77ARGH
Create NFS or Block volume of size 10GB from the RAID Group ‘R5’
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o create_volume -v vol1 -r R5 -z 10 -t nfs
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o create_volume -v vol2 -r R5 -z 10 -t block
*** NOTE *** This script was created for VPSA V1. The create NFS/Block volume functionality will not work with V2.
Create NFS or Block volume of size 10GB from any RAID group:
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o create_volume -v vol1 -z 10 -t nfs
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o create_volume -v vol2 -z 10 -t block
List all volumes
./zadara_vpsa_ops.py -k ABCDEF12345 -i 10.10.1.100 -o list_volumes
2. Example script to replace iSCSI Initiator name
If you spawn a VM from the AMI with pre-installed iSCSI Initiator software, your new VM will have the same iSCSI IQN name as the original AMI. This will happen, because the IQN is generated during the iSCSI Initiator package installation.
There are several ways to fix the problem. We would recommend the following procedure:
Before creating an AMI:
- replace the IQN stored in /etc/iscsi/initiatorname.iscsi with something like:
InitiatorName=iqn.1994-05.com.redhat%CHANGE_ME%
- create a boot script, who will replace the %CHANGE_ME% to some unique value:
UNIQUE_SUFFIX=\`/sbin/iscsi-iname -p ""\`
sed -e "s,%CHANGE_ME%,\$UNIQUE_SUFFIX,g" -i /etc/iscsi/initiatorname.iscsi
- make this script to run at a boot time (optionally, this script can destroy itself after the 1st run).
- create an AMI