[et-mgmt-tools] Thoughts on repo mirroring...

Michael DeHaan mdehaan at redhat.com
Tue Dec 12 22:01:52 UTC 2006


Formatting fixed (somewhat) below...

Michael DeHaan wrote:
> Added some preliminary support for making local mirrors of yum 
> repositories (rsync mirrors only thus far).   Nothing incredibly 
> magical, but it could prove useful to some as it evolves.
> It's checked in, but not documented (except here).
>
> Example:
>
> # cobbler repo add --name=fc6i386updates 
> --mirror=rsync://distro.ibiblio.org/fedora-linux-core/updates/6/i386

> # cobbler reposync 

> # cobbler profile add --name=blah --distro=blah 
> --kickstart=/tmp/foo.ks --repos="fc6i386updates"
>
> The "reposync" command would rsync any repo's cobbler knew about, and 
> is called independently from sync.   It's suitable for usage on cron, 
> though cobbler doesn't install a crontab yet.   Later, it will 
> probably be expanded
> to support more types of mirroring than just rsync (i.e. reposync or 
> using the yum API).

> Now, the first two commands just provide basic mirroring.   The last 
> command includes the "--repos" bit, which is only useful on FC6 and 
> later (not sure about RHEL5?).   If the foo.ks assigned to the profile 
> contains the template line "TEMPLATE::yum_repo_stanza", that spot in 
> the template would be replaced with the code to let Anaconda install 
> from any repos assigned to that profile.   The value of the replaced 
> "TEMPLATE::yum_repo_stanza" entry would be ...  

>    repo --name=fc6updates 
> --baseurl=http://172.16.57.21/repo_mirror/fc6updatesi386
>
> The "/etc/cobbler/kickstart_fc6.ks" that ships with cobbler (from now 
> on) has that TEMPLATE::yum_repo_stanza line in there to be used if any 
> repos are configured.
> You can also specify more than one repo, i.e. "cobbler profile add ... 
> --repos="fc6i386updates fc6i386extras mycompanyrepo" and so forth.  . 

> This is just a start, but it's a logical progression of mirroring, 
> since the point of having a local boot server is partially to have 
> speedy OS installs -- that should apply to upgrades too.
>
> Note that this doesn't configure yum.repos.d on the installed machine 
> -- you'll still have to do that on your own (for now).    Cobbler 
> really shouldn't force puppet or cfengine at anyone who doesn't want 
> it (yet) and those that
> are already using one can use those tools to push out the mirror 
> configurations.
>
> Michael DeHaan wrote:
>
>>
>> A few thoughts on mirroring...
>>
>> "Cobbler import" provides a way of keeping the network demands of 
>> running a large install farm under control -- that is, kickstart tree 
>> content doesn't have to come from public mirrors.   This means faster 
>> installs, less bandwidth, and in general being nice to community 
>> provided mirrors.   One thing that cobbler hasn't been doing is to 
>> integrate this with a good repository mirroring strategy.    Installs 
>> from public and private data ought to come in through the boot 
>> server, not the local university every time.
>>
>> I'm looking fairly closely at reposync and plain rsync right now... 
>> rsync would have some disadvantage in that it would generally bring 
>> down too much content, for instance, say you weren't interested in 
>> KDE.   Comments?   Thoughts?   What tools are folks already using to 
>> do this?
>>
>> Tenatively, I see this looking something like
>>
>> cobbler repo add --name=foo --mirror=URL
>> and putting something like
>> "cobbler repo sync" on a crontab.
>>
>> Then, each cobbler profile would have a new optional property 
>> ("--repos") that would give information about what repositories to 
>> use by default.
>>
>> cobbler profile add --name=p1 --distro=d1 --repos="fc6updates 
>> fc6extras myspecialfc6repo"
>>
>> If a distribution being detected in an import is greater than "FC6", 
>> we know that we can add repo's directly in the kickstart based on the 
>> "repo" directive, otherwise, we'll have to tweak the kickstarts 
>> slightly differently.     All of the repo assignment could be 
>> automagically filled in during kickstart templating (which is done at 
>> "cobbler sync" time).
>>
>> --Michael
>>
>> _______________________________________________
>> et-mgmt-tools mailing list
>> et-mgmt-tools at redhat.com
>> https://www.redhat.com/mailman/listinfo/et-mgmt-tools
>




More information about the et-mgmt-tools mailing list