File: virtual.rb [facter-1.7.3 Documentation]

Last Modified
  2014-01-23 06:39:29 +0000
Requires
  - facter/util/virtual
  - facter/util/macosx
  - facter/util/wmi

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