With the release of vSphere 6.0, we were presented with content libraries in vSphere. However, still it was not a new feature then as its roots are in vCloud director and there we use it as content catalog. Since its addition to vSphere, content libraries have enhanced with every release of vSphere. Specifically in vSphere 7, we have bunch of enhancements.
Before we dive into changes to content libraries in vSphere 7, in this post, let us go through some basic concepts related to content libraries. Why should we use them? And, How to create content library vSphere 7 with content?
Let us take a scenario where you are working for an organization as vSphere admin in a team at HQ. In this scenario, most probably your organization will have central repository somewhere on the network share where all scripts, templates and ISO images are stored which then can be accessed by your team members as required. But the challenge with this approach is that there is no control strategy in place to avoid duplication or modification of data.
Taking further this scenario, if your organization has geographic presence and has multiple offices across globe with local admin teams at respective locations. You will have local images across all these sites to avoid accessing share folder from HQ over WAN network. Again, same problem will resurface there. There is no way we can guarantee that someone has not made copy of the data. Why someone would do that? Well, it does not require any technical reason for it, it’s just human tendency.
If few of your colleagues make copy of data somewhere else on file server or even some local storage at each site, that will result in wastage of storage resource. And we cannot justify the duplication. For example, vCenter ISO of approx 3.x GB, if duplicated by ten individuals across sites, that makes 30 GB of storage consumption and most of it is wastage due to duplication. So imagine about all possible iso images, scripts or templates and amount of duplication possibilities.
Furthermore there is not much of centralized control for restricting duplication and modifications to the data. Anybody with enough rights can duplicate or modify the data.
So to overcome all these challenges and limitations, Content libraries provide the solution. Content libraries are container objects for storing VM templates, vApp templates, ISO images and other types of files. The idea is to have an efficient and centralized method to manage important data required in a vSphere environment.
You can use the templates in the library to deploy virtual machines and vApps in the vSphere inventory. You can also use content libraries to share content across vCenter Server instances at different locations. Sharing templates and files results in consistency, compliance, efficiency, and automation in deploying workloads at scale.
Content libraries are of two type: Local and Subscribed Library. Local library is the read/write version of content library. Hence, usually created on the control site (HQ). All the required data that needs to be shared is added to local content library. This local content library is then published over network to be accessed by subscribed libraries at remote locations. Subscribed libraries are read only versions of content libraries which means admins at remote site can only get the data published by control site and not modify at local site.
So as in picture above, we will create a local content library at control site i.e. USA and subscribed libraries at remote sites in ASIA and Europe. Let us see through step by step process of the same.
- Login to vSphere client of vCenter server at HQ and from Menu options click Content libraries as shown below.
- In the content library pane, click on Create as shown below. This will launch the wizard to create a content library.
- Enter the name for library and select vCenter server from dropdown list to associate library with it and then click Next.
- Select Enable Publishing to publish this library over network and also enable authentication to password protect it. Then click Next.
- Select the datastore, where this library will be stored and click next.
- On next scree, review your selections and click Finish to complete creation of Content Library (Local + Published)
Once the library is created, we need to populate it with required data such as templates, ISO images, scripts or text files. Let us see now, how to populate the library. There are multiple ways in which we can add content to the library as discussed below.
- Importing to Library
Click library name on left, and click action menu and then click Import item as shown below
On import item screen, you are presented with two options, browse local path if content is already downloaded or else directly paste the URL to download it. Ensure that URL includes complete path of file to be downloaded and then click import.
- Cloning to a Library
Right click VM or a template and click Clone to Library.
Select new template on top, then select the library name to upload template to, assign the name for template and click OK
You can check MAC and extra configuration options if required. On tasks pane you can track the progress of upload.
As you can see above, it is uploading it as an OVF Template. This is because I cloned existing template to library.
Note that when you clone VM to library it will be a VM template and when you clone template to library, it will be a OVF template.
In previous versions of vSphere, content libraries supported only OVF templates. As a result, VM and vApp templates were both converted to OVF files when you uploaded them to a content library. Starting with vSphere 6.7 Update 1, content libraries also support VM templates. So, templates in the content library can either be of the OVF Template type, or the VM Template type. vApp templates are still converted to OVF files when you upload them to a content library.
That’s it for this post, I don’t want to make this post too long. So will talk about creating subscribed library and options related to it in next post. Do check Part 2 of this series for more information.