On 02/21/2012 09:22 AM, [email protected] wrote:
> Forum: CFEngine Help
> Subject: Re: Divide Repository
> Author: [email protected]
> Link to topic: https://cfengine.com/forum/read.php?3,24964,24967#msg-24967
>
> Thanks , this is exacly what I was looking for thanks very much
> Grz rob
There is nothing wrong with using copy_from, but if you want to do it
with edit_lines instead you can look at config_yum_client_repos from
https://github.com/nickanderson/nickanderson-cfengine-library/blob/master/lib_rh.cf
Here is an example.
--
Nick Anderson <[email protected]>
body common control {
bundlesequence => {
"main",
};
inputs => {
"cfengine_stdlib.cf",
};
}
bundle agent main {
vars:
# config_yum_clinet_repos will create /etc/yum.repos.d/baseline.repo
based on the settings provided
redhat_5_7::
"setrepo[baseline][name]" string => "RedHat 5.7 Release
Base OS";
"setrepo[baseline][baseurl]" string =>
"http://192.0.2.1/cobbler/ks_mirror/rhel-5.7-x86_64/Server";
"setrepo[baseline][enabled]" string => "0";
"setrepo[baseline][gpgcheck]" string => "no";
redhat_5_5::
"setrepo[baseline][name]" string => "RedHat 5.5 Release
Base OS";
"setrepo[baseline][baseurl]" string =>
"http://192.0.2.1/cobbler/ks_mirror/rhel-5.5-x86_64/Server";
"setrepo[baseline][enabled]" string => "0";
"setrepo[baseline][gpgcheck]" string => "no";
methods:
"yum" usebundle => config_yum_client_repos("main.setrepo");
}
bundle agent config_yum_client_repos(config){
# Expects array with yum repo configurations
# vars:
# "setrepo[repositoryid][name]" string => "RedHat 5 Updates";
# "setrepo[repositoryid][baseurl]" string =>
"url://server1/path/to/repository/";
# "setrepo[repositoryid][metalink]" string => "";
# "setrepo[repositoryid][mirrorlist]" string => "";
# "setrepo[repositoryid][enabled]" string => "";
# "setrepo[repositoryid][gpgcheck]" string => "";
# "setrepo[repositoryid][repo_gpgcheck]" string => "";
# "setrepo[repositoryid][gpgkey]" string => "";
# "setrepo[repositoryid][gpgcakey]" string => "";
# "setrepo[repositoryid][exclude]" string => "";
# "setrepo[repositoryid][includepkgs]" string => "";
# "setrepo[repositoryid][enablegroups]" string => "";
# "setrepo[repositoryid][failovermethod]" string => "";
# "setrepo[repositoryid][keepalive]" string => "";
# "setrepo[repositoryid][timeout]" string => "";
# "setrepo[repositoryid][http_caching]" string => "";
# "setrepo[repositoryid][retries]" string => "";
# "setrepo[repositoryid][throttle]" string => "";
# "setrepo[repositoryid][bandwidth]" string => "";
# "setrepo[repositoryid][sslcacert]" string => "";
# "setrepo[repositoryid][sslverify]" string => "";
# "setrepo[repositoryid][sslclientcert]" string => "";
# "setrepo[repositoryid][metadata_expire]" string => "";
# "setrepo[repositoryid][mirrorlist_expire]" string => "";
# "setrepo[repositoryid][proxy]" string => "";
# "setrepo[repositoryid][proxy_username]" string => "";
# "setrepo[repositoryid][proxy_password]" string => "";
# "setrepo[repositoryid][username]" string => "";
# "setrepo[repositoryid][password]" string => "";
# "setrepo[repositoryid][cost]" string => "";
# "setrepo[repositoryid][skip_if_unavailable]" string => "";
#
# methods:
# "any" usebundle => config_yum_client_repos("context.setrepo");
vars:
# Hopefully someday getindices will support multidimensional arrays and
we
# can get rid of this valid_entries list.
"valid_entries" slist => { "name", "baseurl", "metalink", "mirrorlist",
"enabled", "gpgcheck", "repo_gpgcheck",
"gpgkey", "gpgcakey", "exclude",
"includepkgs", "enablegroups",
"failovermethod",
"keepalive", "timeout", "http_caching",
"retries",
"throttle", "bandwidth", "sslcacert",
"sslverify",
"sslclientcert", "metadata_expire",
"mirrorlist_expire",
"proxy", "proxy_username", "username",
"password", "cost",
"skip_if_unavailable", };
"repoids" slist => getindices("$(config)");
files:
"/etc/yum.repos.d/$(repoids).repo"
create => "true",
edit_line => prepend_if_no_line("[$(repoids)]");
# Using replace_or_add instead of set_variable_values2 here because we
# need to loop on the second dimension of the array and getindices does
# not currently support that, we use the valid_entries list instead.
"/etc/yum.repos.d/$(repoids).repo"
create => "true",
edit_line => replace_or_add("$(valid_entries)=.*",
"$(valid_entries)=$($(config)[$(repoids)][$(valid_entries)])"),
comment => "Completely manage specific repo settings";
}
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine