aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2007-10-12 16:14:11 +0000
committerMicah Anderson <micah@riseup.net>2007-10-12 16:14:11 +0000
commit284b50a1d07310c8c10f1c1f953d1e979762c476 (patch)
tree3974da499c584648e3aefbb8be13270f3d90ff93 /plugins
downloadpuppet-virtual-284b50a1d07310c8c10f1c1f953d1e979762c476.tar.gz
puppet-virtual-284b50a1d07310c8c10f1c1f953d1e979762c476.tar.bz2
add the virtual module
Diffstat (limited to 'plugins')
-rw-r--r--plugins/facter/virtual.rb39
-rw-r--r--plugins/facter/vserver.rb29
2 files changed, 68 insertions, 0 deletions
diff --git a/plugins/facter/virtual.rb b/plugins/facter/virtual.rb
new file mode 100644
index 0000000..e649345
--- /dev/null
+++ b/plugins/facter/virtual.rb
@@ -0,0 +1,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
+
diff --git a/plugins/facter/vserver.rb b/plugins/facter/vserver.rb
new file mode 100644
index 0000000..bd8218d
--- /dev/null
+++ b/plugins/facter/vserver.rb
@@ -0,0 +1,29 @@
+# vserver.rb -- linux-vserver.org related facts
+# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
+# See LICENSE for the full license granted to you.
+# Based on abnormaliti's "virtual" fact from
+# http://reductivelabs.com/trac/puppet/wiki/VirtualRecipe
+
+# This defines the fact "vserver" with the possible values of "none", "guest",
+# or "host"
+
+Facter.add("vserver") do
+ confine :kernel => :linux
+
+ ENV["PATH"]="/bin:/sbin:/usr/bin:/usr/sbin"
+
+ result = "none"
+
+ setcode do
+ if FileTest.directory?('/proc/virtual')
+ result = "host"
+ elsif ! FileTest.directory?('/proc/2')
+ # gross hack: PID 2 is usually a
+ # kernel thread, which doesn't existin vserver
+ result = "guest"
+ end
+
+ result
+ end
+end
+