On 02/21/2012 09:22 AM, no-re...@cfengine.com wrote: > Forum: CFEngine Help > Subject: Re: Divide Repository > Author: rsdejo...@gmail.com > 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 <n...@cmdln.org>
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 Help-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/help-cfengine