samir82show

FastZone

Jun 13th, 2013
400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.32 KB | None | 0 0
  1. #!/usr/bin/sh
  2. #Author:SAMIR AHMED
  3. #Date:27/MAY/2012
  4.  
  5. ###################################READ ME######################################
  6. ##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.
  7.  
  8. #-Having four engines.
  9. #-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.
  10. #-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.
  11.  
  12. #FIRST OF ALL DON'T DELETE zone.log FILE YOU CAN TRACK YOUR UPDATES.
  13.  
  14. #FIRST OPTION IS..to Aliasing-Here you will need each WWN of the host and you need to know in which Switch its visible.
  15.  
  16. #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.
  17.  
  18. #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.
  19.  
  20. #THIRD OPTION IS..to Config-HERE YOU CHOOSE THE FIRST OPTION IN THE LIST INSIDE TO INVOKE THE EXISTING CONFIGURATION IN BOTH SWITCHES
  21. #FOURTH OPTION..to Save-THIS IS TO APPLY CHANGES IN THE SWITCHES, BE SURE THEN CONFIRM WITH (Y) OPTION.
  22.  
  23.  
  24. #In 'to Zoning' sub menu 'add to zone' is not functioning, is not functioning and reserved for future use.
  25. #In 'to config' sub menu 'new config' is not functioning and reserved for future use.
  26.  
  27. #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
  28. ################################################################################
  29.  
  30. ##########ENVIRO#########
  31. #Put the /etc/hosts alias for your SAN switches
  32. SWITCH1=SAN1
  33. SWITCH2=SAN2
  34. #########################
  35.  
  36. #################################Begining of Script#############################
  37. MenU()
  38. {
  39. clear
  40. while :
  41. do
  42. echo "1) to Aliasing"
  43. echo "2) to Zoning"
  44. echo "3) to Config"
  45. echo "4) to Save"
  46. echo "5) to exit"
  47. read n
  48. case $n in
  49. 1) ALIASING;;
  50. 2) ZONING;;
  51. 3) CONFIG;;
  52. 4) SAVE;;
  53. 5) return;;
  54. *) ErroR;;
  55. esac
  56. done
  57. }
  58. ALIASING()
  59. {
  60. clear
  61. echo "insert WWN0 in Switch1 eg.(xx:xx:xx:xx:xx:xx:xx:xx):(or b to go back)"
  62. read WWN0
  63. echo "insert WWN1 in Switch2 eg.(xx:xx:xx:xx:xx:xx:xx:xx):(or b to go back)"
  64. read WWN1
  65. #ssh admin@${SWITCH1} switchshow | grep $WWN > /dev/null
  66. #if [ $? = 0 ]
  67. #then
  68. if [ $WWN0 = 'b' -o $WWN1 = 'b' ]
  69. then
  70. return
  71. else
  72. echo "give the host name eg. (SERVER1) (upper letters convention will be enforced by default) :(or b to go back)"
  73. read ALIAS
  74. ALIAS=`echo $ALIAS | tr "[a-z]" "[A-Z]"`
  75. if [ $ALIAS = 'b' ]
  76. then
  77. return
  78. else
  79. echo "Alias Created"
  80. fi
  81. return
  82. fi
  83. #else
  84. #echo "not_found WWN"
  85. #return
  86. #fi
  87. }
  88. ZONING()
  89. {
  90. while :
  91. do
  92. echo "1) create new zone"
  93. echo "2) add to zone"
  94. echo "3) 3 to previous menu"
  95. read m
  96. case $m in
  97. 1)NewzonE;;
  98. 2)ExistzonE;;
  99. 3)return;;
  100. *)ErroR
  101. return;;
  102. esac
  103. done
  104. clear
  105. }
  106. CONFIG()
  107. {
  108. while :
  109. do
  110. echo "1) existing config"
  111. echo "2) new config"
  112. echo "3) 3 to previous menu"
  113. read m
  114. case $m in
  115. 1)ExistconfiG;;
  116. 2)NewconfiG;;
  117. 3)return;;
  118. *)ErroR;;
  119. esac
  120. done
  121. clear
  122. }
  123. SAVE()
  124. {
  125. clear
  126. echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0"
  127. echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1"
  128. echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}"
  129. echo "are you sure?(y/n)"
  130. read m
  131. while :
  132. do
  133. if [ $m = 'y' ]
  134. then
  135. case $SET in
  136. 'VMAX915_FAaE0')
  137. echo >> zone.log
  138. echo >> zone.log
  139. date >> zone.log
  140. echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
  141. echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
  142. echo "SET=${SET}" >> zone.log
  143. echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
  144. ssh admin@${SWITCH1} << AEO
  145. alicreate "${ALIAS}_HBA0","$WWN0"
  146. cfgsave
  147. yes
  148. AEO
  149. ssh admin@${SWITCH2} << AEO
  150. alicreate "${ALIAS}_HBA1","$WWN1"
  151. cfgsave
  152. yes
  153. AEO
  154. for i in VMAX915_FA5E0 VMAX915_FA6E0 VMAX915_FA7E0 VMAX915_FA8E0
  155. do
  156. ssh admin@${SWITCH1} << EOT
  157. zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
  158. cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
  159. cfgsave
  160. yes
  161. EOT
  162. done
  163. ssh admin@${SWITCH1} << TOF
  164. cfgenable $EXIST_CFG1
  165. yes
  166. TOF
  167. for i in VMAX915_FA9E0 VMAX915_FA10E0 VMAX915_FA11E0 VMAX915_FA12E0
  168. do
  169. ssh admin@${SWITCH2} << EOT
  170. zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
  171. cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
  172. cfgsave
  173. yes
  174. EOT
  175. done
  176. ssh admin@${SWITCH2} << TOF
  177. cfgenable $EXIST_CFG2
  178. yes
  179. TOF
  180. ;;
  181. 'VMAX915_FAaE1')
  182. echo >> zone.log
  183. echo >> zone.log
  184. date >> zone.log
  185. echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
  186. echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
  187. echo "SET=${SET}" >> zone.log
  188. echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
  189. ssh admin@${SWITCH1} << AEO
  190. alicreate "${ALIAS}_HBA0","$WWN0"
  191. cfgsave
  192. yes
  193. AEO
  194. ssh admin@${SWITCH2} << AEO
  195. alicreate "${ALIAS}_HBA1","$WWN1"
  196. cfgsave
  197. yes
  198. AEO
  199. for i in VMAX915_FA9E1 VMAX915_FA10E1 VMAX915_FA11E1 VMAX915_FA12E1
  200. do
  201. ssh admin@${SWITCH1} << EOT
  202. zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
  203. cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
  204. cfgsave
  205. yes
  206. EOT
  207. done
  208. ssh admin@${SWITCH1} << TOF
  209. cfgenable $EXIST_CFG1
  210. yes
  211. TOF
  212. for i in VMAX915_FA5E1 VMAX915_FA6E1 VMAX915_FA7E1 VMAX915_FA8E1
  213. do
  214. ssh admin@${SWITCH2} << EOT
  215. zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
  216. cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
  217. cfgsave
  218. yes
  219. EOT
  220. done
  221. ssh admin@${SWITCH2} << TOF
  222. cfgenable $EXIST_CFG2
  223. yes
  224. TOF
  225. ;;
  226. 'VMAX915_FAaF0')
  227. echo >> zone.log
  228. echo >> zone.log
  229. date >> zone.log
  230. echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
  231. echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
  232. echo "SET=${SET}" >> zone.log
  233. echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
  234. ssh admin@${SWITCH1} << AEO
  235. alicreate "${ALIAS}_HBA0","$WWN0"
  236. cfgsave
  237. yes
  238. AEO
  239. ssh admin@${SWITCH2} << AEO
  240. alicreate "${ALIAS}_HBA1","$WWN1"
  241. cfgsave
  242. yes
  243. AEO
  244. for i in VMAX915_FA5F0 VMAX915_FA6F0 VMAX915_FA7F0 VMAX915_FA8F0
  245. do
  246. ssh admin@${SWITCH1} << EOT
  247. zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
  248. cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
  249. cfgsave
  250. yes
  251. EOT
  252. done
  253. ssh admin@${SWITCH1} << TOF
  254. cfgenable $EXIST_CFG1
  255. yes
  256. TOF
  257. for i in VMAX915_FA9F0 VMAX915_FA10F0 VMAX915_FA11F0 VMAX915_FA12F0
  258. do
  259. ssh admin@${SWITCH2} << EOT
  260. zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
  261. cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
  262. cfgsave
  263. yes
  264. EOT
  265. done
  266. ssh admin@${SWITCH2} << TOF
  267. cfgenable $EXIST_CFG2
  268. yes
  269. TOF
  270. ;;
  271. 'VMAX915_FAaF1')
  272. echo >> zone.log
  273. echo >> zone.log
  274. date >> zone.log
  275. echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
  276. echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
  277. echo "SET=${SET}" >> zone.log
  278. echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
  279. ssh admin@${SWITCH1} << AEO
  280. alicreate "${ALIAS}_HBA0","$WWN0"
  281. cfgsave
  282. yes
  283. AEO
  284. ssh admin@${SWITCH2} << AEO
  285. alicreate "${ALIAS}_HBA1","$WWN1"
  286. cfgsave
  287. yes
  288. AEO
  289. for i in VMAX915_FA9F1 VMAX915_FA10F1 VMAX915_FA11F1 VMAX915_FA12F1
  290. do
  291. ssh admin@${SWITCH1} << EOT
  292. zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
  293. cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
  294. cfgsave
  295. yes
  296. EOT
  297. done
  298. ssh admin@${SWITCH1} << TOF
  299. cfgenable $EXIST_CFG1
  300. yes
  301. TOF
  302. for i in VMAX915_FA5F1 VMAX915_FA6F1 VMAX915_FA7F1 VMAX915_FA8F1
  303. do
  304. ssh admin@${SWITCH2} << EOT
  305. zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
  306. cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
  307. cfgsave
  308. yes
  309. EOT
  310. done
  311. ssh admin@${SWITCH2} << TOF
  312. cfgenable $EXIST_CFG2
  313. yes
  314. TOF
  315. ;;
  316. 'VMAX915_FAaG0')
  317. echo >> zone.log
  318. echo >> zone.log
  319. date >> zone.log
  320. echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
  321. echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
  322. echo "SET=${SET}" >> zone.log
  323. echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
  324. ssh admin@${SWITCH1} << AEO
  325. alicreate "${ALIAS}_HBA0","$WWN0"
  326. cfgsave
  327. yes
  328. AEO
  329. ssh admin@${SWITCH2} << AEO
  330. alicreate "${ALIAS}_HBA1","$WWN1"
  331. cfgsave
  332. yes
  333. AEO
  334. for i in VMAX915_FA5G0 VMAX915_FA6G0 VMAX915_FA7G0 VMAX915_FA8G0
  335. do
  336. ssh admin@${SWITCH1} << EOT
  337. zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
  338. cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
  339. cfgsave
  340. yes
  341. EOT
  342. done
  343. ssh admin@${SWITCH1} << TOF
  344. cfgenable $EXIST_CFG1
  345. yes
  346. TOF
  347. for i in VMAX915_FA9G0 VMAX915_FA10G0 VMAX915_FA11G0 VMAX915_FA12G0
  348. do
  349. ssh admin@${SWITCH2} << EOT
  350. zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
  351. cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
  352. cfgsave
  353. yes
  354. EOT
  355. done
  356. ssh admin@${SWITCH2} << TOF
  357. cfgenable $EXIST_CFG2
  358. yes
  359. TOF
  360. ;;
  361. 'VMAX915_FAaG1')
  362. echo >> zone.log
  363. echo >> zone.log
  364. date >> zone.log
  365. echo "ALIAS=${ALIAS}_HBA0 in Switch1 WWN0=$WWN0" >> zone.log
  366. echo "ALIAS=${ALIAS}_HBA1 in Switch2 WWN1=$WWN1" >> zone.log
  367. echo "SET=${SET}" >> zone.log
  368. echo "Switch1_CFG:${EXIST_CFG1} \t\t\t Switch2_CFG:${EXIST_CFG2}" >> zone.log
  369. ssh admin@${SWITCH1} << AEO
  370. alicreate "${ALIAS}_HBA0","$WWN0"
  371. cfgsave
  372. yes
  373. AEO
  374. ssh admin@${SWITCH2} << AEO
  375. alicreate "${ALIAS}_HBA1","$WWN1"
  376. cfgsave
  377. yes
  378. AEO
  379. for i in VMAX915_FA9G1 VMAX915_FA10G1 VMAX915_FA11G1 VMAX915_FA12G1
  380. do
  381. ssh admin@${SWITCH1} << EOT
  382. zonecreate "${ALIAS}_HBA0_${i}","${ALIAS}_HBA0;$i"
  383. cfgadd "$EXIST_CFG1","${ALIAS}_HBA0_${i}"
  384. cfgsave
  385. yes
  386. EOT
  387. done
  388. ssh admin@${SWITCH1} << TOF
  389. cfgenable $EXIST_CFG1
  390. yes
  391. TOF
  392. for i in VMAX915_FA5G1 VMAX915_FA6G1 VMAX915_FA7G1 VMAX915_FA8G1
  393. do
  394. ssh admin@${SWITCH2} << EOT
  395. zonecreate "${ALIAS}_HBA1_${i}","${ALIAS}_HBA1;$i"
  396. cfgadd "$EXIST_CFG2","${ALIAS}_HBA1_${i}"
  397. cfgsave
  398. yes
  399. EOT
  400. done
  401. ssh admin@${SWITCH2} << TOF
  402. cfgenable $EXIST_CFG2
  403. yes
  404. TOF
  405. ;;
  406. esac
  407. return
  408. elif [ $m = 'n' ]
  409. then
  410. return
  411. else
  412. ErroR
  413. return
  414. fi
  415. done
  416. }
  417. NewzonE()
  418. {
  419. clear
  420. echo "you have (VMAX915_FAaEb;VMAX915_FAaFb;VMAX915_FAaGb)"
  421. echo
  422. echo "Enter the CPU Alias replacing 'b' with 0 or 1 eg.(VMAX915_FAaE1)where a=director no && b=cpu port no"
  423. read SET
  424. for i in $SET
  425. do
  426. case $SET in
  427. 'VMAX915_FAaE0') echo "chosen SET is"
  428. for i in 5 6 7 8 9 10 11 12
  429. do
  430. echo "VMAX915_FA${i}E0"
  431. done;;
  432. 'VMAX915_FAaE1') echo "chosen SET is"
  433. for i in 5 6 7 8 9 10 11 12
  434. do
  435. echo "VMAX915_FA${i}E1"
  436. done;;
  437. 'VMAX915_FAaF0') echo "chosen SET is"
  438. for i in 5 6 7 8 9 10 11 12
  439. do
  440. echo "VMAX915_FA${i}F0"
  441. done;;
  442. 'VMAX915_FAaF1') echo "chosen SET is"
  443. for i in 5 6 7 8 9 10 11 12
  444. do
  445. echo "VMAX915_FA${i}F1"
  446. done;;
  447. 'VMAX915_FAaG0') echo "chosen SET is"
  448. for i in 5 6 7 8 9 10 11 12
  449. do
  450. echo "VMAX915_FA${i}G0"
  451. done;;
  452. 'VMAX915_FAaG1') echo "chosen SET is"
  453. for i in 5 6 7 8 9 10 11 12
  454. do
  455. echo "VMAX915_FA${i}G1"
  456. done;;
  457. *)ErroR
  458. return;;
  459. esac
  460. done
  461. echo "\n"
  462. echo "Zone Created"
  463. return
  464. }
  465. ExistzonE()
  466. {
  467. clear
  468. echo "not ready function"
  469. return
  470. }
  471. ErroR()
  472. {
  473. clear
  474. echo "You Entered Wrong Option"
  475. return
  476. }
  477. ExistconfiG()
  478. {
  479. clear
  480. EXIST_CFG1=`ssh admin@${SWITCH1} cfgshow | sed -n '/Effective/,$p' | grep cfg | awk -F':' '{print $2}'`
  481. EXIST_CFG2=`ssh admin@${SWITCH2} cfgshow | sed -n '/Effective/,$p' | grep cfg | awk -F':' '{print $2}'`
  482. echo "SWITCH1:${EXIST_CFG1} \t SWITCH2:${EXIST_CFG2}"
  483. return
  484. }
  485. NewconfiG()
  486. {
  487. clear
  488. echo "not ready function"
  489. return
  490. }
  491. ###########################MAIN###############################
  492. MenU
Advertisement
Add Comment
Please, Sign In to add comment