Path: | lib/facter/virtual.rb |
Last Update: | Sun May 19 07:17:49 +0000 2013 |
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.