Forum: Cfengine Help
Subject: Re: Hostname based classes and virtual machines in Cfengine 3
Author: dnaeon
Link to topic: https://cfengine.com/forum/read.php?3,22131,22139#msg-22139
mark Wrote:
-------------------------------------------------------
> Yes, but I still don't understand. Cfengine gets
> the real host name from uname(), which is what you
> get from printing the shell command. So your
> example is no different from using the hostname of
> the machine.
>
> Also, I don't see what the IP addresses have to do
> with the hostname,
>
> Is there not rather a way of determining what is
> not a jail? The presence of a special file, the
> ability to see the jail directories, to qualify
> the class?
>
> isdir("/jail") ?
>
> I'm afraid I don't know much about jails or how
> they look in practice.
>
> M
Hello again,
Thanks for the quick replies!
@Mark
Yes, there is a way to determine if you are running in a jail or a host instead:
bundle common myclasses {
vars:
"sysctl_jailed" string => execresult("/sbin/sysctl -n
security.jail.jailed", "noshell");
classes:
"freebsd_jail" expression => strcmp("$(sysctl_jailed)", "1");
"freebsd_host" expression => strcmp("$(sysctl_jailed)", "0");
@toddnni
The example given by toddnni in his last post is the exact issue - the host
inherits the classes for the jails as well. It is not a jail related issue, but
an interface actually, because the interface's IP address is looked up and
automatically creates a hard class in the form of host_domain_tld for that IP
address.
And when you have a jail on the host (and interface for it) you get the classes
for the jail on the host as well.
Hope that makes any sense.
Regards,
Marin
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine