Forum: Cfengine Help
Subject: Hostname based classes and virtual machines in Cfengine 3
Author: dnaeon
Link to topic: https://cfengine.com/forum/read.php?3,22131,22131#msg-22131
Hello,
I know that this topic has been quite a lot discussed here, but my situation is
a bit different :)
I'm running Cfengine 3 and to group my systems into classes I'm using the
system's hostnames.
An example configuration I have is like this:
classes:
"domain1" or => {
classify("www-proxy.domain1.org"),
classify("mysql.domain1.org")
};
"domain2" or => {
classify("www-proxy.domain2.org"),
classify("mysql.domain2.org")
};
"policy_servers" or => {
classify("$(g.policyhost)")
};
My Cfengine 3 setup runs under FreeBSD Jails - both policy servers and clients
are inside FreeBSD Jails and it works fine as expected. The soft classes match
the hostnames defined in the above configuration, promises are executed for the
specific classes, etc..
The problem comes when you try to run Cfengine 3 on the host system itself.
That is because when running cf-agent(8) on the host it defines the hard
classes for all interfaces (which also include the jails interfaces) and the
Jail's hostnames in the form of host_domain_org (for example mysql_domain1_org
from the above configuration).
I know that this is a normal behaviour for the agent to define hard classes for
the interfaces it discovers, but this also means that the host inherits classes
which are not meant for it.
For example my policy server (g.policyhost) is running on the same physical
host that I want to have Cfengine 3 agent. When you run cf-agent(8) on the host
machine, the host machine also inherits the soft class "policy_servers" and
that messes up the configuration, because g.policyhost is running on the host
machine.
This is not relevant for FreeBSD jails only, but I know that for Linux vservers
it's the same thing.
My question is - can we define a soft class based on the "real" hostname, for
example "www.domain1.org", and not "www1_domain1_org" as Cfengine does? If that
is possible then I think the host won't inherit the virtual machines classes as
well, but only those for which it is defined to have.
Sorry for the long post :)
Any feedback is appreciated.
Regards,
Marin
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine