#!/bin/bash # define vsan VSAN=2 # file with aliasnames and pwwns # servername_port pwwn ALIASPWWN=./fcalias_pwwn.txt # files with zone definitions # servername-storagename ZONES=./zones.txt # create unique zoneset name ZONESET="ZONES_"`date +%Y%m%d`"_"`date +%H%M` # convert alias definitions to all lower case cat $ALIASPWWN | tr [A-Z] [a-z] > /tmp/aliaspwwn cat /tmp/aliaspwwn > $ALIASPWWN # convert zone definitions to all lower case cat $ZONES | tr [A-Z] [a-z] > /tmp/zones cat /tmp/zones > $ZONES echo conf t echo !~~~~~~~~~~ Aliase ~~~~~~~~~~ for LINE in `cat $ZONES | tr [A-Z] [a-z]` do SERVER=`echo $LINE | cut -d"-" -f 1` STORAGE=`echo $LINE | cut -d"-" -f 2` echo $SERVER >> /tmp/alias echo $STORAGE >> /tmp/alias done cat /tmp/alias | sort -u > /tmp/aliases rm /tmp/alias for LINE in `cat /tmp/aliases` do HOST=`cat $ALIASPWWN | grep $LINE | awk '{print $1}' | sort -u` for I in `echo $HOST` do echo "fcalias name $I vsan $VSAN" PWWN=`cat $ALIASPWWN | grep $I | awk '{print $2}'` echo " member pwwn $PWWN" echo "" done done echo !~~~~~~~~~~ 1:1 Zonen ~~~~~~~~~~ for LINE in `cat $ZONES` do SERVER=`echo $LINE | cut -d"-" -f 1` STORAGE=`echo $LINE | cut -d"-" -f 2` SRV=`cat $ALIASPWWN | grep $SERVER | awk '{print $1}' | sort -u` STO=`cat $ALIASPWWN | grep $STORAGE | awk '{print $1}' | sort -u` for I in `echo $SRV` do for J in `echo $STO` do ZN=`echo zone name "$I"__"$J" vsan $VSAN` AZN="$AZN $I"__"$J" echo $ZN echo " member fcalias $I" echo " member fcalias $J" echo "" done done done echo !~~~~~~~~~~ Zoneset ~~~~~~~~~~ echo "zoneset name $ZONESET vsan $VSAN" for I in `echo $AZN` do echo " member $I" done echo "zoneset activate name $ZONESET vsan $VSAN" echo "copy running startup" rm /tmp/zones rm /tmp/aliases rm /tmp/aliaspwwn