With its group commands (groupinstall, groupremove, …), Yum is able to install a set of packages to quickly set up a system for a specific task.
This blog post is a great introduction to Yum software groups
In CFEngine, it is now possible (feature merged in master, but not yet released) to handle such groups through yum_group package_method.
Some examples:
- Installing perl-runtime and basic-desktop groups:
body common control {
bundlesequence => { "foo" };
inputs => { "/var/cfengine/inputs/libraries/cfengine_stdlib.cf" };
}
bundle agent foo {
vars:
"packages" slist => { "perl-runtime", "basic-desktop" };
packages:
"$(packages)"
package_policy => "add",
package_method => yum_group;
}
- Removing debugging group:
body common control {
bundlesequence => { "foo" };
inputs => { "/var/cfengine/inputs/libraries/cfengine_stdlib.cf" };
}
bundle agent foo {
vars:
"packages" slist => { "debugging" };
packages:
"$(packages)"
package_policy => "delete",
package_method => yum_group;
}
You can find here a full example (with runtime output), and here the body of the yum_group package_method
This has only been tested on a CentOS-6.2 system, any feedback is welcome !