As promised in the earlier post, for completeness sake, here’s the counterpart for removing the LUNs in the first place.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| #!/bin/bash
KEY_FILE="/root/.ssh/netapp.dsa"
SSH_OPTS="/root/.ssh/netapp-ssh_config"
if [ $# -ne 2 ] ; then
echo "fas-remove-lunmap: FAS_CONTROLLER TARGET_IGROUP"
echo
echo "Remove every mapped lun from the target igroup (for example reinstallation)"
echo
echo " Usage:"
echo " - FAS_CONTROLLER: Hostname/IP-adress of the DATA ONTAP controller"
echo " - TARGET_IGROUP: igroup that is actually modified"
echo
exit 1
fi
FAS_CTRL=$1
TARGET=$2
ssh_fas() {
# $@: commands for Data ONTAP
COMMANDS="$@"
/usr/bin/ssh -i $KEY_FILE -l root -F $SSH_OPTS $COMMANDS
}
# Get the hostname of the controller, necessary for the reporting
CTRL_HOSTNAME="$( ssh_fas $FAS_CTRL rdfile /etc/rc | grep ^hostname | cut -d -f2 | tr 'a-z' 'A-Z' )"
#set -x
# Get the lun list.
for lun in $( ssh_fas $FAS_CTRL lun show -g $SOURCE | awk '{ print $1 }' | sort -u ); do
# If the LUN id is 0, skip otherwise we would remove the boot LUN
if [ "$LUN_ID" != "0" ] ; then
# Actually remove the mapping to our host
echo "Removing $lun from $TARGET"
ssh_fas $FAS_CTRL lun unmap $lun $TARGET
fi
done
#set +x
|
With that, you can simply run it against a NetApp controller and remove every LUN map except the one with LUN ID 0 (which is pretty handy when installing/reinstalling ESX servers).