Last Modified
2013-08-12 12:35:53 +0000
Requires
  • facter/util/virtual
  • facter/util/macosx

Description

Fact: virtual

Purpose: Determine if the system's hardware is real or virtualised.

Resolution:

Assumes physical unless proven otherwise.

On Darwin, use the macosx util module to acquire the SPDisplaysDataType,
from that parse it to see if it's VMWare or Parallels pretending to be the
display.

On Linux, BSD, Solaris and HPUX:
Much of the logic here is obscured behind util/virtual.rb, which rather
than document here, which would encourage drift, just refer to it.
The Xen tests in here rely on /sys and /proc, and check for the presence and
contents of files in there.
If after all the other tests, it's still seen as physical, then it tries to
parse the output of the "lspci", "dmidecode" and "prtdiag" and parses them
for obvious signs of being under VMWare, Parallels or VirtualBox.
Finally it checks for the existence of vmware-vmx, which would hint it's
VMWare.

Caveats:

Many checks rely purely on existence of files.