| 1 | #!/bin/bash | 
|---|
| 2 | ############################################## | 
|---|
| 3 | # Add VMWare Network Bridged devices hot | 
|---|
| 4 | # | 
|---|
| 5 | # Revisions | 
|---|
| 6 | # J.Gargano - 2009-07-08 - 1.1 | 
|---|
| 7 | # | 
|---|
| 8 | ############################################# | 
|---|
| 9 |  | 
|---|
| 10 | echo "Locating Existing Devices" | 
|---|
| 11 | for dev in $(ls /dev/vmnet*); | 
|---|
| 12 | do | 
|---|
| 13 | echo " Found $dev" | 
|---|
| 14 | done | 
|---|
| 15 | echo | 
|---|
| 16 | printf "Please enter a device number that does not exist in this list: " | 
|---|
| 17 | read num | 
|---|
| 18 | # Check if it exists | 
|---|
| 19 | if [ -e /dev/vmnet$num ];then | 
|---|
| 20 | echo "/dev/vmnet$num exists! Exiting." | 
|---|
| 21 | exit 1 | 
|---|
| 22 | fi | 
|---|
| 23 |  | 
|---|
| 24 |  | 
|---|
| 25 | # Select an interface | 
|---|
| 26 | echo | 
|---|
| 27 | echo "Locating interfaces to bridge" | 
|---|
| 28 | for int in $(ifconfig |grep "^[a-z,A-Z]" |cut -d' ' -f1); | 
|---|
| 29 | do | 
|---|
| 30 | echo $int | 
|---|
| 31 | done | 
|---|
| 32 | printf "Please enter a interface: " | 
|---|
| 33 | read interface | 
|---|
| 34 |  | 
|---|
| 35 | # Check if it exists | 
|---|
| 36 | ifconfig $interface >/dev/null 2>&1 | 
|---|
| 37 | ret=$? | 
|---|
| 38 | if [ $ret != 0 ];then | 
|---|
| 39 | if [ "$1" != "-d" ]; then | 
|---|
| 40 | echo "Can't find interface. Exiting!" | 
|---|
| 41 | exit 1 | 
|---|
| 42 | else | 
|---|
| 43 | echo "Use dummy device: $interface" | 
|---|
| 44 | dummy="Dummy " | 
|---|
| 45 | fi | 
|---|
| 46 | fi | 
|---|
| 47 |  | 
|---|
| 48 |  | 
|---|
| 49 | # Create device | 
|---|
| 50 | echo "Creating device /dev/vmnet$num" | 
|---|
| 51 | mknod --mode=600 /dev/vmnet$num c 119 $num | 
|---|
| 52 |  | 
|---|
| 53 | # Add to vmware netmap configuration | 
|---|
| 54 | # open netmap.conf and get next number in list | 
|---|
| 55 | let nextnetnum=$(cat /etc/vmware/netmap.conf | tail -1 | cut -d'.' -f1 | sed -e s/network//)+1 | 
|---|
| 56 |  | 
|---|
| 57 | echo "Adding network$nextnetnum to /etc/vmware/netmap.conf" | 
|---|
| 58 |  | 
|---|
| 59 | echo "network$nextnetnum.name = \"${dummy}Bridged to $interface\"">> /etc/vmware/netmap.conf | 
|---|
| 60 | echo "network$nextnetnum.device = \"vmnet$num\"">> /etc/vmware/netmap.conf | 
|---|
| 61 |  | 
|---|
| 62 | # Add to vmware locations configuration | 
|---|
| 63 | echo "answer VNET_${num}_NAME ${dummy}Bridged to $interface" >> /etc/vmware/locations | 
|---|
| 64 | echo "answer VNET_${num}_INTERFACE $interface" >> /etc/vmware/locations | 
|---|
| 65 | echo "remove_file /dev/vmnet$num" >> /etc/vmware/locations | 
|---|
| 66 | echo "file /dev/vmnet$num" >> /etc/vmware/locations | 
|---|
| 67 |  | 
|---|
| 68 | # Start Service | 
|---|
| 69 | `which vmnet-bridge` -d /var/run/vmnet-bridge-$num.pid -n $num -i $interface | 
|---|