We're changing the schedule up here. I originally planned to talk about offering slicing today but I think we covered that sufficiently yesterday. I'd like to follow up on Tuesday's entry where I mentioned composite repositories. This was described as a very useful type of repository, but what is so special about this?
What is a composite repository?
A composite repository is one that is a reference to one or more other repositories. Think of it as a proxy server for repositories. It let's you provide one repository either to your end users or in the response files you use, while being able to quickly and easily change what products and versions that repository includes.
Why would I use this?
So you can point your users at one repo, and change it on the fly. Why exactly is that useful? Well, two primary reasons. First, it lets you change repositories without having to change your response file or the repository your end users are pointing at. Want to adopt a new version of a product in your enterprise? Just create a new repository, add the line to the list of repositories in your composite repository, and there you go. The new version is now available, without changing anything on your end user systems and without having to take anything off-line. The same approach can be used to add a new product to your environment as well.
The other reason is that it allows you to more easily create and maintain role or team based repositories. If you have multiple teams that share some products, a composite repository allows you to have one repository for those shared products which is then referenced by the composite. Instead of having to update each of those team repositories when a new version of a product comes out, you can just update the product repository and have it be picked up by the various composites easily.
OK, they're cool. How do I make one?
Currently this has to be done by hand. We have documentation in the Installation Manager Info Center for this, which can be found here: Creating composite repositories. It's a fairly straightforward process.
- Create a directory on the machine you want to host the repository
- In that directory, create a file called "repository.config"
- Add the following lines to your file:
The "LayoutPolicy" and "LayoutPolicyVersion" lines are required. The "repository.url.<number>" lines are used to point to the repositories you want to be part of the composite repository.
There is one major caveat we'll want to note here. If this composite repository is going to be accessed via HTTP, HTTPS, or FTP, you'll need to have all the repositories you reference be network repositories. If they'll be referenced via network share or mount point, then you can use the ESD repositories.
So there we have it. Composite repositories are simple to make and eliminate the drawbacks of team or role based repositories while keeping the benefits.