Hi There,
Looking at your module approach, I think you are heading for quite a bit of pain, I've found that packaging tools such as RPM are best for this kind of task.
In my environment which is all RHEL based I (roughly) do the following:
- I have a number of YUM repositories defined and presented to the network via HTTP
- By default, all nodes have the standard production baseline YUM repositories enabled by default
- I use top scope variables to enable additional YUM repositories that may contain later package versions or testing packages via the yumrepo type
- Once these additional repositories are enabled, I can then use yum update to bring hosts up to a specific baseline of the OS or software set.
- Once I am happy with the functionality of this new repo, I can either promote it to be the production baseline or something similar.
Here is some puppet logic that operates on the $::enable_testing_repos value, and enables the testing repo if it is true for a host, else it is left defined, but disabled.
yumrepo { $rhelsysupporttestingrepo :
baseurl => $rhelsysupporttestingrepourl,
descr => "TESTING System support packages",
gpgcheck => '1',
enabled => $::enable_testing_repos ? {
'true' => '1',
default => '0',
}
}
Re: Spacewalk - I've just moved my entire fleet from spacewalk / satellite to YUM via HTTP (Apache) with repos created with createrepo, etc and find it much faster and flexible.
Hope this is of some use.
Thanks,
K