blob: e649345b87ad4f5a5aac0307b87fb3a880df39d2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# Copied from http://reductivelabs.com/trac/puppet/wiki/VirtualRecipe?version=6
# Authored by abnormaliti with contributions by daniel@nsp.co.nz and mwr
# This defines the fact "virtual" with the possible values of "physical",
# "vmware", "vmware_server", "xenu", or "xen0"
Facter.add("virtual") do
confine :kernel => :linux
ENV["PATH"]="/bin:/sbin:/usr/bin:/usr/sbin"
result = "physical"
setcode do
lspciexists = system "which lspci >&/dev/null"
if $?.exitstatus == 0
output = %x{lspci}
output.each {|p|
# --- look for the vmware video card to determine if it is virtual => vmware.
# --- 00:0f.0 VGA compatible controller: VMware Inc [VMware SVGA II] PCI Display Adapter
result = "vmware" if p =~ /VMware/
}
end
# VMware server 1.0.3 rpm places vmware-vmx in this place, other versions or platforms may not.
if FileTest.exists?("/usr/lib/vmware/bin/vmware-vmx")
result = "vmware_server"
end
if FileTest.exists?("/proc/xen/capabilities") and File.read("/proc/xen/capabilities") =~ /control_d/i
result = "xen0"
elsif FileTest.exists?("/proc/sys/xen/independent_wallclock")
result = "xenu"
end
result
end
end
|