VMware Server supports FreeBSD as a guest OS and offers vmware-tools built for it. You can fool VMware Server into thinking that an OpenBSD VM is FreeBSD, and use OpenBSD's FreeBSD emulation to run vmware-tools.
Create a new VM and select Other/FreeBSD as the guest operating system. Configure the rest to your liking. Power on the VM you've just created and install OpenBSD as usual; if you've never installed OpenBSD before have a look at the Installation Guide. After the installation finishes, reboot into OpenBSD and enable FreeBSD emulation by issuing
sysctl -w kern.emul.freebsd=1. Make this setting permanent by uncommenting the appropriate line in /etc/sysctl.conf.
Select Install VMware Tools... on the VM menu; this creates a virtual CD-ROM image which is accessible from the VM and includes a tarball with vmware-tools for FreeBSD. From that tarball we need to install the vmware-guestd daemon, which triggers events sent for the host computer and runs commands accordingly -- such as halt and reboot -- on the guest OS. So, run the following commands to mount that image and install the daemon and its configuration:
mount /dev/cd0c /mnt tar -zxvpf /mnt/vmware-freebsd-tools.tar.gz -C /tmp mkdir -p /emul/freebsd/sbin install -m 555 -o root -g wheel /tmp/vmware-tools-distrib/lib/sbin32/vmware-guestd /emul/freebsd/sbin cp -r /tmp/vmware-tools-distrib/etc /etc/vmware-tools rm -rf /tmp/vmware-tools-distrib umount /mnt
Start the daemon with
/emul/freebsd/sbin/vmware-guestd --background /var/run/vmware-guestd.pid --halt-command "/sbin/shutdown -p -h now". To have it started on boot add the following lines to your /etc/rc.local file just before the
echo '.' line:
if [ -x /emul/freebsd/sbin/vmware-guestd ]; then echo -n ' vmware-tools' /emul/freebsd/sbin/vmware-guestd --background /var/run/vmware-guestd.pid \ --halt-command "/sbin/shutdown -p -h now" fi
Now you can shut down the VM and check its status from the VMware Web-based management interface or console and have it halt and power off properly.