Let's say you have a guest machine with the name nrel-dev-centso6 and you keep your guest machine images in ~/Documents/Virtual\ Machines/. To determine the MAC address for this VM, you can run:
cat ~/Documents/Virtual\ Machines/nrel-dev-centos6.vmwarevm/*.vmx | grep ethernet0.generatedAddress
Copy the MAC address, e.g. 00:0c:29:59:6a:d0.
Open /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf. vmnet8 is the virtual interface for NAT networking in VMWare the guest machines. In this file, you'll see a subnet clause that looks something like this:
subnet 192.168.234.0 netmask 255.255.255.0 {
range 192.168.234.128 192.168.234.254;
option broadcast-address 192.168.234.255;
option domain-name-servers 192.168.234.2;
option domain-name localdomain;
default-lease-time 1800; # default is 30 minutes
max-lease-time 7200; # default is 2 hours
option netbios-name-servers 192.168.234.2;
option routers 192.168.234.2;
}
Take note of the line starting with range. The IP addresses you will assign your guest machines will need to fall outside that range. Find the line that looks like this:
####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
Below that line, add a clause for your guest machine. It should look like this:
host nrel-dev-centos6 {
hardware ethernet 00:0c:29:59:6a:d0;
fixed-address 192.168.234.100;
}
Make sure the hardware ethernet value matches the MAC address you found in step one, and the fixed-address is an IP outside the range listed in the subnet clause.
If you want to assign a fancy local hostname that refers to your guest machine, you can do so by editing your /etc/hosts file. For instance, to assign the hostname ubuntu.local to the guest machine we just setup, we could add the following line to our /etc/hosts file:
192.168.234.100 nrel-dev-centos
Last thing to do is restart your VMWare daemons:
sudo /Applications/VMware\ Fusion.app/Contents/Library/services/services.sh --stop
sudo /Applications/VMware\ Fusion.app/Contents/Library/services/services.sh --start
If you are using VMWare Fusion 6, services.sh is in a different location.
sudo /Applications/VMware\ Fusion.app/Contents/Library/services.sh --stop
sudo /Applications/VMware\ Fusion.app/Contents/Library/services.sh --start