We are using Oracle Enterprise Linux 64bit installations in VMWare Fusion (32GB MacPros). In principal there are two possibilities to access running processes vmrun and normal IP-based protocols.
Here are two bash functions to support scripting:
Script to select one of the running VMWare boxes
SelectVMWare() {
IFS='
'
listOfVMWares=(`vmrun list`)
echo -e "\n\n Please select Client to Install:"
for((i=1;i<${#listOfVMWares[*]};i++)) do
echo -e "\t\t" $i " " ${listOfVMWares[$i]}
done
read CLIENT_SELECTION
CLIENT_VMX=${listOfVMWares[$CLIENT_SELECTION]}
}
If you want to access the boxes by e.g. SSH you will need the IP-number. This is possible by using the MAC address parsed from the given VMX-file, fping (it is no default on OSX) and arp.
Script to get the IP address (runs on Snow Leopard)
GetIP() {
fping -c 1 -g -q 176.16.8.0/24 2> /dev/null; # pings all of subnet
# get the MAC address
MAC_ADDRESS=`grep "ethernet0.generatedAddress " $1 | sed 's/.*= "00:\(.*\)"/\1/'`
# set the field separator to : and create an array
IFS=":"
temp=( $MAC_ADDRESS )
# iterate through the array and delete the leading zeros
for i in {0..4}
do
characters=`echo ${temp[i]} |wc -m`
if [ $characters -gt 2 ]; then
temp[i]="${temp[i]/#0/ }"
fi
done
# change IFS back and create corrected MAC address
IFS=","
MAC_TEMP=${temp[0]}:${temp[1]}:${temp[2]}:${temp[3]}:${temp[4]}
MAC_ADDRESS=`echo $MAC_TEMP | sed -e 's/ //g'`
MAC_MATCH=0:$MAC_ADDRESS
#echo $MAC_MATCH
#echo $MAC_ADDRESS
# convert MAC address
IP_ADDRESS=`arp -an |grep $MAC_ADDRESS |sed "s/.*? (\(.*\)) at $MAC_MATCH on vmnet1 ifscope \[ethernet\]/\1/"`
#echo found IP: $IP_ADDRESS Is this OK?
#read -n1
}