Issue #10225 has been reported by ghislain -.
----------------------------------------
Bug #10225: virtual fact does not detect host/guest correctly
https://projects.puppetlabs.com/issues/10225
Author: ghislain -
Status: Unreviewed
Priority: Normal
Assignee:
Category: library
Target version: 1.6.2
Keywords: vserver
Branch:
Affected Facter version: 1.6.2
the virtual fact does not work on vserver 2.3.1 because /proc/virtual is hidden
but still detected by facter:
The only REAL way to tell is to test /proc/self/status and look for the vxid,
if zero => host, if 1 => special spectator context facter will nerver see this
one, if more => guest
i wrote this one for me:
if File.exists?("/proc/self/status")
File.open('/proc/self/status').each_line{ |s|
procstatus = s.split(': ');
if procstatus[0] == 'VxID'
if procstatus[1].strip! == '0'
# this is the host
Facter.add("vps") do
setcode{ "vserverhost" }
end
else
# this is the guest
Facter.add("vps") do
setcode{ "vserverguest" }
end
end
else
# pas un vserver
end
}
end
This does not relly on file xx or yy to be there it just test if the current
process has a virtual ID.
GUEST:/%(root)> facter virtual
vserver_host
GUEST:/%(root)> grep -i VXid /proc/self/status
VxID: 40410
(root)> vserver-info
Versions:
Kernel: 3.0.7-vs2.3.1aq
VS-API: 0x00020308
VCI: 0x0000000013001f11
util-vserver: 0.30.216-pre2994; Oct 21 2011, 17:32:30
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.