11#! /bin/bash
22
33# user data
4- # Set the secret name and region
5- SECRET_NAME=[Secret name has it been saved in AWS secret manager]
6- AWS_REGION=[AWS region]
7-
8- FSXN_ADMIN_IP=[Fsx admin ip, e.g. 172.25.45.32]
9- # Volume name
10- VOLUME_NAME=[Fsx volume name, e.g. iscsiVol]
11- # Volume size in GB
12- VOLUME_SIZE=[volume size in GB, e.g 100]
4+ # Secret name has it been saved in AWS secret manager
5+ SECRET_NAME=
6+ AWS_REGION=
7+ # Fsx admin ip, e.g. 172.25.45.32
8+ FSXN_ADMIN_IP=
9+ # FSxN Volume name , e.g. iscsiVol
10+ VOLUME_NAME=
11+ # Volume size in GB e.g 100
12+ VOLUME_SIZE=
1313# Default value is fsx, but you can change it to any other value according to yours FSx for ONTAP SVM name
1414SVM_NAME=fsx
1515# Default value is fsxadmin, but you can change it to any other value according to yours FSx for ONTAP admin user name
1616ONTAP_USER=fsxadmin
1717# end - user data
1818
19+ SECRET_NAME=" ${SECRET_NAME:= $1 } "
20+ AWS_REGION=" ${AWS_REGION:= $2 } "
21+ FSXN_ADMIN_IP=" ${FSXN_ADMIN_IP:= $3 } "
22+ VOLUME_NAME=" ${VOLUME_NAME:= $4 } "
23+ VOLUME_SIZE=" ${VOLUME_SIZE:= $5 } "
24+
1925min=100
2026max=999
2127LUN_NAME=${VOLUME_NAME} _$(( $RANDOM % ($max - $min + 1 )+ $min ))
154160 logMessage " Initiator ${initiatorName} with group ${groupName} already exists, skipping creation."
155161fi
156162
163+ instance_id=$( ec2-metadata -i | awk ' {print $2}' )
164+
157165logMessage " Create volume for vserver: ${SVM_NAME} volume name: ${VOLUME_NAME} and size: ${VOLUME_SIZE} g"
158166createVolumeResult=$( curl -m $TIMEOUT -X POST -u " $ONTAP_USER " :" $FSXN_PASSWORD " -k " https://$FSXN_ADMIN_IP /api/storage/volumes" -d ' {
159167 "name": "' $VOLUME_NAME ' ",
@@ -164,9 +172,14 @@ createVolumeResult=$(curl -m $TIMEOUT -X POST -u "$ONTAP_USER":"$FSXN_PASSWORD"
164172 },
165173 "aggregates": [{
166174 "name": "aggr1"
167- }]
175+ }],
176+ "_tags": [
177+ "instanceId:' $instance_id ' ",
178+ "hostName:' $( hostname) ' ",
179+ "mountPoint:' $VOLUME_NAME ' "
180+ ]
168181}' )
169- sleep 5
182+ sleep 10
170183jobId=$( echo " ${createVolumeResult} " | jq -r ' .job.uuid' )
171184jobStatus=$( curl -X GET -u " $ONTAP_USER " :" $FSXN_PASSWORD " -k " https://$FSXN_ADMIN_IP /api/cluster/jobs/$jobId " )
172185jobState=$( echo " $jobStatus " | jq -r ' .state' )
0 commit comments