Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/sh
- #Author:SAMIR AHMED
- #Date:27/MAY/2012
- ###################################READ ME######################################
- ##This Script is developed to be Safe, Urgent and Guide towards objectives (Zoning), also to enforce one standard of naming convention, for Zoning of bulk of servers in the implementation phase or upgrade purpose, so minimizes probability of human mistakes,that is why I minimized flexibility.
- #-Having four engines.
- #-Director [5,6,7 and 8], CPUs(E,F,G) Port 0, AND, Director [9,10,11 and 12], CPUs(E,F,G) Port 1, are connected to Switch1.
- #-Director [5,6,7 and 8], CPUs(E,F,G) Port 1, AND, Director [9,10,11 and 12], CPUs(E,F,G) Port 0, are connected to Switch2.
- #FIRST OF ALL DON'T DELETE zone.log FILE YOU CAN TRACK YOUR UPDATES.
- #FIRST OPTION IS..to Aliasing-Here you will need each WWN of the host and you need to know in which Switch its visible.
- #THEN YOU HAVE TO GIVE THE HOST NAME IN CAPITAL eg. (SERVER) (ONLY HOST NAME WITHOUT MENTIONING ANYTHING LIKE (SERVER_HBA0) this will be enforced automatically inside each switch.
- #SECOND OPTION IS..to Zoning-CHOOSE FIRST OPTION IN THE LIST INSIDE (create new zone) Here you need to specify the CPU and the Port you need to zone to it, JUST REPLACE THE LAST Character (b) with 0 for port 0 or 1 for port 1.
- #THIRD OPTION IS..to Config-HERE YOU CHOOSE THE FIRST OPTION IN THE LIST INSIDE TO INVOKE THE EXISTING CONFIGURATION IN BOTH SWITCHES
- #FOURTH OPTION..to Save-THIS IS TO APPLY CHANGES IN THE SWITCHES, BE SURE THEN CONFIRM WITH (Y) OPTION.
- #In 'to Zoning' sub menu 'add to zone' is not functioning, is not functioning and reserved for future use.
- #In 'to config' sub menu 'new config' is not functioning and reserved for future use.
- #Note: Anytime you felt not sure about what you are doning before pressing y to confirm in Save option, you can press control-c to close script and start from the begining
- ################################################################################
- ##########ENVIRO#########
- #Put the /etc/hosts alias for your SAN switches
- SWITCH1=SAN1
- SWITCH2=SAN2
- #########################
- #################################Begining of Script#############################
- MenU()
- {
- clear
- while :
- do
- echo "1) to Aliasing"
- echo "2) to Zoning"
- echo "3) to Config"
- echo "4) to Save"
- echo "5) to exit"
- read n
- case $n in
- 1) ALIASING;;
- 2) ZONING;;
- 3) CONFIG;;
- 4) SAVE;;
- 5) return;;
- *) ErroR;;
- esac
- done
- }
- ALIASING()
- {
- clear
- echo "insert WWN0 in Switch1 eg.(xx:xx:xx:xx:xx:xx:xx:xx):(or b to go back)"
- read WWN0
- echo "insert WWN1 in Switch2 eg.(xx:xx:xx:xx:xx:xx:xx:xx):(or b to go back)"
- read WWN1
- #ssh admin@${SWITCH1} switchshow | grep $WWN > /dev/null
- #if [ $? = 0 ]
- #then
- if [ $WWN0 = 'b' -o $WWN1 = 'b' ]
- then
- return
- else
- echo "give the host name eg. (SERVER1) (upper letters convention will be enforced by default) :(or b to go back)"
- read ALIAS
- ALIAS=`echo $ALIAS | tr "[a-z]" "[A-Z]"`
- if [ $ALIAS = 'b' ]
- then
- return
- else
- echo "Alias Created"
- fi
- return
- fi
- #else
- #echo "not_found WWN"
- #return
- #fi
- }
- ZONING()
- {
- while :
- do
- echo "1) create new zone"
- echo "2) add to zone"
- echo "3) 3 to previous menu"
- read m
- case $m in
- 1)NewzonE;;
- 2)ExistzonE;;
- 3)return;;
- *)ErroR
- return;;
- esac
- done
- clear
- }
- CONFIG()
- {
- while :
- do
- echo "1) existing config"
- echo "2) new config"
- echo "3) 3 to previous menu"
- read m
- case $m in
- 1)ExistconfiG;;
- 2)NewconfiG;;
- 3)return;;
- *)ErroR;;
- esac
- done
- clear
- }
- SAVE()
- {
- clear
- echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0"
- echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1"
- echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}"
- echo "are you sure?(y/n)"
- read m
- while :
- do
- if [ $m = 'y' ]
- then
- case $SET in
- 'VMAX915_FAaE0')
- echo >> zone.log
- echo >> zone.log
- date >> zone.log
- echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
- echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
- echo "SET=${SET}" >> zone.log
- echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
- ssh admin@${SWITCH1} << AEO
- alicreate "${ALIAS}_HBA0","$WWN0"
- cfgsave
- yes
- AEO
- ssh admin@${SWITCH2} << AEO
- alicreate "${ALIAS}_HBA1","$WWN1"
- cfgsave
- yes
- AEO
- for i in VMAX915_FA5E0 VMAX915_FA6E0 VMAX915_FA7E0 VMAX915_FA8E0
- do
- ssh admin@${SWITCH1} << EOT
- zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
- cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH1} << TOF
- cfgenable $EXIST_CFG1
- yes
- TOF
- for i in VMAX915_FA9E0 VMAX915_FA10E0 VMAX915_FA11E0 VMAX915_FA12E0
- do
- ssh admin@${SWITCH2} << EOT
- zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
- cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH2} << TOF
- cfgenable $EXIST_CFG2
- yes
- TOF
- ;;
- 'VMAX915_FAaE1')
- echo >> zone.log
- echo >> zone.log
- date >> zone.log
- echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
- echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
- echo "SET=${SET}" >> zone.log
- echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
- ssh admin@${SWITCH1} << AEO
- alicreate "${ALIAS}_HBA0","$WWN0"
- cfgsave
- yes
- AEO
- ssh admin@${SWITCH2} << AEO
- alicreate "${ALIAS}_HBA1","$WWN1"
- cfgsave
- yes
- AEO
- for i in VMAX915_FA9E1 VMAX915_FA10E1 VMAX915_FA11E1 VMAX915_FA12E1
- do
- ssh admin@${SWITCH1} << EOT
- zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
- cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH1} << TOF
- cfgenable $EXIST_CFG1
- yes
- TOF
- for i in VMAX915_FA5E1 VMAX915_FA6E1 VMAX915_FA7E1 VMAX915_FA8E1
- do
- ssh admin@${SWITCH2} << EOT
- zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
- cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH2} << TOF
- cfgenable $EXIST_CFG2
- yes
- TOF
- ;;
- 'VMAX915_FAaF0')
- echo >> zone.log
- echo >> zone.log
- date >> zone.log
- echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
- echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
- echo "SET=${SET}" >> zone.log
- echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
- ssh admin@${SWITCH1} << AEO
- alicreate "${ALIAS}_HBA0","$WWN0"
- cfgsave
- yes
- AEO
- ssh admin@${SWITCH2} << AEO
- alicreate "${ALIAS}_HBA1","$WWN1"
- cfgsave
- yes
- AEO
- for i in VMAX915_FA5F0 VMAX915_FA6F0 VMAX915_FA7F0 VMAX915_FA8F0
- do
- ssh admin@${SWITCH1} << EOT
- zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
- cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH1} << TOF
- cfgenable $EXIST_CFG1
- yes
- TOF
- for i in VMAX915_FA9F0 VMAX915_FA10F0 VMAX915_FA11F0 VMAX915_FA12F0
- do
- ssh admin@${SWITCH2} << EOT
- zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
- cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH2} << TOF
- cfgenable $EXIST_CFG2
- yes
- TOF
- ;;
- 'VMAX915_FAaF1')
- echo >> zone.log
- echo >> zone.log
- date >> zone.log
- echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
- echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
- echo "SET=${SET}" >> zone.log
- echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
- ssh admin@${SWITCH1} << AEO
- alicreate "${ALIAS}_HBA0","$WWN0"
- cfgsave
- yes
- AEO
- ssh admin@${SWITCH2} << AEO
- alicreate "${ALIAS}_HBA1","$WWN1"
- cfgsave
- yes
- AEO
- for i in VMAX915_FA9F1 VMAX915_FA10F1 VMAX915_FA11F1 VMAX915_FA12F1
- do
- ssh admin@${SWITCH1} << EOT
- zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
- cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH1} << TOF
- cfgenable $EXIST_CFG1
- yes
- TOF
- for i in VMAX915_FA5F1 VMAX915_FA6F1 VMAX915_FA7F1 VMAX915_FA8F1
- do
- ssh admin@${SWITCH2} << EOT
- zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
- cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH2} << TOF
- cfgenable $EXIST_CFG2
- yes
- TOF
- ;;
- 'VMAX915_FAaG0')
- echo >> zone.log
- echo >> zone.log
- date >> zone.log
- echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
- echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
- echo "SET=${SET}" >> zone.log
- echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
- ssh admin@${SWITCH1} << AEO
- alicreate "${ALIAS}_HBA0","$WWN0"
- cfgsave
- yes
- AEO
- ssh admin@${SWITCH2} << AEO
- alicreate "${ALIAS}_HBA1","$WWN1"
- cfgsave
- yes
- AEO
- for i in VMAX915_FA5G0 VMAX915_FA6G0 VMAX915_FA7G0 VMAX915_FA8G0
- do
- ssh admin@${SWITCH1} << EOT
- zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
- cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH1} << TOF
- cfgenable $EXIST_CFG1
- yes
- TOF
- for i in VMAX915_FA9G0 VMAX915_FA10G0 VMAX915_FA11G0 VMAX915_FA12G0
- do
- ssh admin@${SWITCH2} << EOT
- zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
- cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH2} << TOF
- cfgenable $EXIST_CFG2
- yes
- TOF
- ;;
- 'VMAX915_FAaG1')
- echo >> zone.log
- echo >> zone.log
- date >> zone.log
- echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
- echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
- echo "SET=${SET}" >> zone.log
- echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
- ssh admin@${SWITCH1} << AEO
- alicreate "${ALIAS}_HBA0","$WWN0"
- cfgsave
- yes
- AEO
- ssh admin@${SWITCH2} << AEO
- alicreate "${ALIAS}_HBA1","$WWN1"
- cfgsave
- yes
- AEO
- for i in VMAX915_FA9G1 VMAX915_FA10G1 VMAX915_FA11G1 VMAX915_FA12G1
- do
- ssh admin@${SWITCH1} << EOT
- zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
- cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH1} << TOF
- cfgenable $EXIST_CFG1
- yes
- TOF
- for i in VMAX915_FA5G1 VMAX915_FA6G1 VMAX915_FA7G1 VMAX915_FA8G1
- do
- ssh admin@${SWITCH2} << EOT
- zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
- cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
- cfgsave
- yes
- EOT
- done
- ssh admin@${SWITCH2} << TOF
- cfgenable $EXIST_CFG2
- yes
- TOF
- ;;
- esac
- return
- elif [ $m = 'n' ]
- then
- return
- else
- ErroR
- return
- fi
- done
- }
- NewzonE()
- {
- clear
- echo "you have (VMAX915_FAaEb;VMAX915_FAaFb;VMAX915_FAaGb)"
- echo
- echo "Enter the CPU Alias replacing 'b' with 0 or 1 eg.(VMAX915_FAaE1)where a=director no && b=cpu port no"
- read SET
- for i in $SET
- do
- case $SET in
- 'VMAX915_FAaE0') echo "chosen SET is"
- for i in 5 6 7 8 9 10 11 12
- do
- echo "VMAX915_FA${i}E0"
- done;;
- 'VMAX915_FAaE1') echo "chosen SET is"
- for i in 5 6 7 8 9 10 11 12
- do
- echo "VMAX915_FA${i}E1"
- done;;
- 'VMAX915_FAaF0') echo "chosen SET is"
- for i in 5 6 7 8 9 10 11 12
- do
- echo "VMAX915_FA${i}F0"
- done;;
- 'VMAX915_FAaF1') echo "chosen SET is"
- for i in 5 6 7 8 9 10 11 12
- do
- echo "VMAX915_FA${i}F1"
- done;;
- 'VMAX915_FAaG0') echo "chosen SET is"
- for i in 5 6 7 8 9 10 11 12
- do
- echo "VMAX915_FA${i}G0"
- done;;
- 'VMAX915_FAaG1') echo "chosen SET is"
- for i in 5 6 7 8 9 10 11 12
- do
- echo "VMAX915_FA${i}G1"
- done;;
- *)ErroR
- return;;
- esac
- done
- echo "\n"
- echo "Zone Created"
- return
- }
- ExistzonE()
- {
- clear
- echo "not ready function"
- return
- }
- ErroR()
- {
- clear
- echo "You Entered Wrong Option"
- return
- }
- ExistconfiG()
- {
- clear
- EXIST_CFG1=`ssh admin@${SWITCH1} cfgshow | sed -n '/Effective/,$p' | grep cfg | awk -F':' '{print $2}'`
- EXIST_CFG2=`ssh admin@${SWITCH2} cfgshow | sed -n '/Effective/,$p' | grep cfg | awk -F':' '{print $2}'`
- echo "SWITCH1:${EXIST_CFG1} \t SWITCH2:${EXIST_CFG2}"
- return
- }
- NewconfiG()
- {
- clear
- echo "not ready function"
- return
- }
- ###########################MAIN###############################
- MenU
Advertisement
Add Comment
Please, Sign In to add comment