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 |
---|