WEBVTT

00:00:00.000 --> 00:00:06.440
Welcome back to vSphere 8 in the real world. Now we're going to look at content libraries.

00:00:06.440 --> 00:00:13.800
So a content library is basically a logical component, a logical object that you can create in vSphere

00:00:13.800 --> 00:00:20.900
that allows you to store information, store documents. Documents is probably not the right word.

00:00:20.900 --> 00:00:28.600
But objects in this content library and then share them amongst a bunch of different systems, make them easy to access.

00:00:28.600 --> 00:00:35.500
The types of things you would store in here, you would store templates in here, you would store, you can store virtual apps, templates.

00:00:35.500 --> 00:00:41.599
ISOs are a real common thing that you might put in there. And you can put text files. Why would you put a text file in there?

00:00:41.599 --> 00:00:48.400
You might have a text file in there where you've documented certain things, certain maybe configurations or something like that.

00:00:48.400 --> 00:00:53.259
You know, instructions when you're going to deploy this particular vApp, here's all the steps you need to take.

00:00:53.259 --> 00:01:01.360
And so you have the vApp and you have a text file with instructions on how to deploy that virtual app all together, things like that.

00:01:01.360 --> 00:01:14.559
So it's a handy little place, right? And it allows you to put all this stuff together. Traditionally, things like ISOs and templates were stored on these regular data stores.

00:01:14.559 --> 00:01:28.459
Now, a template is kind of easy to find in that you have a files and templates view where you can go in there, you can see folders, you can see all your virtual machines, and you can see your templates, right?

00:01:28.459 --> 00:01:35.959
So that beam and templates view obviously makes it easy to find templates. But if you have a lot, they might get kind of difficult to find.

00:01:35.959 --> 00:01:43.559
But you didn't have really a good place to store ISOs. We used to create a data store and then we create a folder called ISOs on a data store.

00:01:43.559 --> 00:01:53.160
And we might throw the Windows 2016 ISO in there. And then a few years later, we have the Windows 2024 ISO, and we're like, okay, or I'm sorry, 2022 ISO.

00:01:53.160 --> 00:02:00.160
And it's like, okay, where are we going to put this? Oh, here's a data store. Let me create a folder called ISO. Let me throw the ISO image in there.

00:02:00.160 --> 00:02:09.160
And now all of a sudden, we've got, you know, 30 data stores and five of them have ISO folders and things are spread out all over those different locations, right?

00:02:09.759 --> 00:02:17.259
We didn't put them on our super expensive flash storage because we knew that was expensive. But we've got this data store over here that's got inexpensive storage.

00:02:17.259 --> 00:02:20.759
This one over here has got inexpensive storage. And so we kind of spread it out.

00:02:20.759 --> 00:02:27.259
A content library is a way that we can kind of have a logical place where I'm going to pull all this together.

00:02:27.259 --> 00:02:32.759
I might create a content library, and I might just call it ISOs and only put ISOs in there.

00:02:33.360 --> 00:02:39.360
I might have one for a group, and this group is going to need these ISOs and it's going to need these certain templates.

00:02:39.360 --> 00:02:47.360
And so I'll say, okay, this is for a DevOps content library, and here's the ISOs they need, and here's the templates they need.

00:02:47.360 --> 00:02:52.360
And here's some documents, you know, explaining to them how to deploy this particular template.

00:02:52.360 --> 00:02:59.360
And here's instructions on how to, you know, mount this ISO onto a virtual machine because they're not VMware engineers.

00:02:59.460 --> 00:03:03.960
They're developers, and so here's some kind of cheat sheets for them for that, things like that.

00:03:03.960 --> 00:03:11.460
And I might have another content library I can create that I have just for synchronizing Kubernetes machines, right?

00:03:11.460 --> 00:03:16.960
And I could have tools that are going to subscribe to this content library I've created.

00:03:16.960 --> 00:03:21.460
And when I put new Kubernetes, you know, templates in there, it pulls from there.

00:03:21.460 --> 00:03:25.960
I can deploy a bunch of Kubernetes machines from these templates that I've stored in a content library.

00:03:25.960 --> 00:03:28.460
So there's lots of different ways you can use content libraries.

00:03:28.559 --> 00:03:31.559
They're a really, actually, super handy little feature.

00:03:32.559 --> 00:03:36.559
Honestly, I haven't seen them used as much as you might think they would be used,

00:03:36.559 --> 00:03:39.559
but I think it's because one of those things that VMware did, it's pretty cool.

00:03:39.559 --> 00:03:45.559
It probably didn't take them a ton of effort to do, you know, developer-wise and things like that.

00:03:45.559 --> 00:03:48.559
And so they haven't really touted it as much.

00:03:48.559 --> 00:03:52.559
You don't hear them really bragging about this huge, amazing new feature.

00:03:52.559 --> 00:03:55.559
And so a lot of people don't even realize it's there, or they know it's there,

00:03:55.660 --> 00:03:58.660
but they don't really know what it does, how easy it is to use, that kind of thing.

00:03:58.660 --> 00:04:01.660
But they actually are, they're pretty helpful.

00:04:01.660 --> 00:04:02.660
They're useful.

00:04:02.660 --> 00:04:05.660
And they're very, very easy, very fast to create.

00:04:05.660 --> 00:04:08.660
So we can store a lot of different things in them.

00:04:08.660 --> 00:04:10.660
We can also now store templates.

00:04:10.660 --> 00:04:13.660
Before, we only stored OVFs in there, some things like that.

00:04:13.660 --> 00:04:18.660
But now we can store templates in there, which makes them a lot more useful for, you know,

00:04:18.660 --> 00:04:23.660
for sharing information, sharing, you know, resources amongst different groups and things like that.

00:04:23.760 --> 00:04:26.760
So it's a pretty cool resource.

00:04:26.760 --> 00:04:29.760
So to create a content library, it's real simple.

00:04:29.760 --> 00:04:33.760
So up in our little, you know, in our menu, we have the little Big Mac, the three lines.

00:04:33.760 --> 00:04:36.760
Click on that, and we're going to go to our content libraries.

00:04:36.760 --> 00:04:41.760
And then we'll see whatever content libraries have been created already, if any.

00:04:41.760 --> 00:04:44.760
And we just got to go in and say, do we want to create a content library?

00:04:44.760 --> 00:04:47.760
It's going to ask us to go in.

00:04:47.760 --> 00:04:49.760
We're going to start with a brand, give it a name.

00:04:49.760 --> 00:04:52.760
We might put a description there, some things like that.

00:04:52.859 --> 00:04:54.859
Some information about it.

00:04:54.859 --> 00:04:57.859
Is it a subscriber or a publisher?

00:04:57.859 --> 00:04:59.859
You know, some information like that.

00:04:59.859 --> 00:05:01.859
What data store do we want to store it on?

00:05:01.859 --> 00:05:03.859
And then we're going to say next.

00:05:03.859 --> 00:05:05.859
It's pretty simple to create one.

00:05:05.859 --> 00:05:07.859
When we do our demo, we'll walk through creating one.

00:05:07.859 --> 00:05:10.859
You'll see it's actually very, very simple to create.

00:05:10.859 --> 00:05:12.859
So we have different types.

00:05:12.859 --> 00:05:15.859
We have a local content library or a subscribed.

00:05:15.859 --> 00:05:21.859
So on the local, we can enable and say, okay, this is what we want to be a publishing content library.

00:05:21.959 --> 00:05:24.959
And that means it's a local and it's a publishing content library.

00:05:24.959 --> 00:05:27.959
We can then also say we want to require authentication.

00:05:27.959 --> 00:05:29.959
We can enable that you have to authenticate into it.

00:05:29.959 --> 00:05:34.959
The other kind of content library we can create is what's called a subscribed content library.

00:05:34.959 --> 00:05:41.959
And a subscribed content library is going to point to the local publishing content library.

00:05:41.959 --> 00:05:42.959
Right?

00:05:42.959 --> 00:05:45.959
So we'll have the URL for that local publishing content library.

00:05:45.959 --> 00:05:49.959
And then the subscribed content library just pulls information from there.

00:05:50.059 --> 00:05:56.059
So we can create subscribed content libraries for groups where they just need to get access to things.

00:05:56.059 --> 00:05:58.059
So maybe we have, again, a group of developers.

00:05:58.059 --> 00:06:02.059
And we want them all to use the same templates.

00:06:02.059 --> 00:06:04.059
We want them to use all the same OVAs.

00:06:04.059 --> 00:06:08.059
We want them all to use the same Kubernetes templates that we've created for them.

00:06:08.059 --> 00:06:10.059
We don't want them to create their own.

00:06:10.059 --> 00:06:13.059
We don't want them to be able to change them and push them back into there.

00:06:13.059 --> 00:06:16.059
Maybe they can make changes once they've pulled it down locally.

00:06:16.160 --> 00:06:20.160
But we don't want them to change what's in our master content library there.

00:06:20.160 --> 00:06:23.160
So it's a read-only kind of thing.

00:06:23.160 --> 00:06:25.160
They only pull from it, and that's it.

00:06:25.160 --> 00:06:27.160
You could tell it that you want it to synchronize.

00:06:27.160 --> 00:06:29.160
As soon as a file lands, it's new.

00:06:29.160 --> 00:06:31.160
The subscribed is going to pull that.

00:06:31.160 --> 00:06:34.160
Or you can say basically it's a link to the local.

00:06:34.160 --> 00:06:37.160
And when you click on it for the first time, then it pulls it over.

00:06:37.160 --> 00:06:40.160
It only pulls over what it needs when it needs it, like on demand.

00:06:40.160 --> 00:06:41.160
Right?

00:06:41.160 --> 00:06:44.160
Or you can say you want it to always be pulling over, you know, in real time all the time.

00:06:44.260 --> 00:06:48.260
So there's the local content library, which is the publishing.

00:06:48.260 --> 00:06:52.260
And then there's the subscribed, which is subscribed and subscribes to the published.

00:06:52.260 --> 00:06:56.260
And that is just synchronizing, getting the information that's put into the publishing.

00:06:56.260 --> 00:07:02.260
So I have this group of people who are able to put stuff in the publishing.

00:07:02.260 --> 00:07:05.260
And then I have another group that are able to read that subscribe.

00:07:05.260 --> 00:07:08.260
And the subscribe can read the publishing and get that information.

00:07:08.260 --> 00:07:12.260
And we can, therefore, you know, distribute it out over a pretty broad area pretty quickly.

00:07:12.359 --> 00:07:16.359
And people have, like, a closer, more local version of that.

00:07:16.359 --> 00:07:23.359
So for a subscribing content library, we need the URL of a published content library.

00:07:23.359 --> 00:07:26.359
Publish is also, you know, the local content library.

00:07:26.359 --> 00:07:28.359
You can enable authentication.

00:07:28.359 --> 00:07:29.359
That's optional.

00:07:29.359 --> 00:07:31.359
You probably want to enable authentication.

00:07:31.359 --> 00:07:33.359
And then you can select your download method.

00:07:33.359 --> 00:07:36.359
Are you going to download immediately as soon as the copy is, you know, made,

00:07:36.359 --> 00:07:39.359
sitting there, copied over, or only when needed?

00:07:39.459 --> 00:07:43.459
So once it's been published, we say, oh, here's a change.

00:07:43.459 --> 00:07:46.459
I'm going to publish it if that's available.

00:07:46.459 --> 00:07:48.459
But it's really like a link to it.

00:07:48.459 --> 00:07:51.459
And then when you click on it for the first time, now I synchronize it.

00:07:51.459 --> 00:07:53.459
And now you actually got a copy of it locally.

00:07:53.459 --> 00:07:58.459
So if there is 100 files in there, I might have 100, you know, metadata links to it.

00:07:58.459 --> 00:08:02.459
And then when I click on one for the first time to get it, then it copies over that one.

00:08:02.459 --> 00:08:04.459
And if I click on another one, now I have those two.

00:08:04.459 --> 00:08:05.459
That kind of thing.

00:08:05.459 --> 00:08:06.459
You get the idea.

00:08:06.559 --> 00:08:08.559
And then, of course, it does, when you go to create it,

00:08:08.559 --> 00:08:12.559
you will say you want to accept the SSL certificate thumbprint.

00:08:12.559 --> 00:08:14.559
Basically, if you don't have signed certificates,

00:08:14.559 --> 00:08:16.559
it will be an untrusted certificate.

00:08:16.559 --> 00:08:18.559
You say you want to accept this, you accept it.

00:08:18.559 --> 00:08:22.559
That is the thumbprint of the SSL certificate for the host that I'm expecting that to

00:08:22.559 --> 00:08:26.559
come from, and I can trust that.

00:08:26.559 --> 00:08:30.559
So one thing you also need to choose is the data store you're going to put these

00:08:30.559 --> 00:08:32.559
content libraries on.

00:08:32.559 --> 00:08:34.559
They have to be stored someplace, right?

00:08:34.659 --> 00:08:36.659
If you're creating a new content library, you're going to choose a data store

00:08:36.659 --> 00:08:40.659
for this content library to store the information on.

00:08:40.659 --> 00:08:42.659
So, again, you're going through your whole process.

00:08:42.659 --> 00:08:44.659
You're creating a new content library.

00:08:44.659 --> 00:08:48.659
It says what storage we want to use, and you'll choose the data store for that.

00:08:48.659 --> 00:08:50.659
So here we are back in our demo environment.

00:08:50.659 --> 00:08:54.659
And, again, we're in VMware's hands-on lab environment.

00:08:54.659 --> 00:08:56.659
So it's hol.vmware.com.

00:08:56.659 --> 00:09:00.659
So it's our hands-on lab.vmware.com.

00:09:00.760 --> 00:09:04.760
So what we do to create a content library, we click on the little hamburger

00:09:04.760 --> 00:09:08.760
up here in the corner, and we go to content libraries.

00:09:08.760 --> 00:09:12.760
And we have, by default, already a content library here.

00:09:12.760 --> 00:09:15.760
I'm going to say create.

00:09:15.760 --> 00:09:17.760
I'm going to give this a name.

00:09:17.760 --> 00:09:21.760
And so the name, I'll just call it demo lib.

00:09:21.760 --> 00:09:23.760
You can get a description if you want to.

00:09:23.760 --> 00:09:27.760
You can specify what vCenter you want this to be associated with.

00:09:27.859 --> 00:09:30.859
What kind of content library are we going to create?

00:09:30.859 --> 00:09:34.859
Are we going to create a local content library or a subscribed content library?

00:09:34.859 --> 00:09:37.859
If I'm going to do a subscribed content library, then I need to already have

00:09:37.859 --> 00:09:41.859
a local content library that has enabled publishing.

00:09:41.859 --> 00:09:45.859
And as we discussed during the lecture, once we enable publishing,

00:09:45.859 --> 00:09:49.859
then subscribed content libraries can go and pull from them.

00:09:49.859 --> 00:09:51.859
It won't push back.

00:09:51.859 --> 00:09:55.859
All we can do with this content library is pull updates from whichever content

00:09:55.960 --> 00:09:58.960
library we are subscribed to.

00:09:58.960 --> 00:10:02.960
And so I am able to control what gets pushed out to these different

00:10:02.960 --> 00:10:04.960
subscribed libraries.

00:10:04.960 --> 00:10:08.960
So a common thing we might use this for is a developer that is pushing up,

00:10:08.960 --> 00:10:12.960
say, for example, Kubernetes templates can go in and publish

00:10:12.960 --> 00:10:16.960
those Kubernetes to this content library.

00:10:16.960 --> 00:10:20.960
And all the different ones that are spread around that are subscribed to it

00:10:20.960 --> 00:10:22.960
will pull from this.

00:10:23.059 --> 00:10:27.059
We can have scripts that will go in and deploy them out for us and things like that.

00:10:27.059 --> 00:10:31.059
So we'll do a local content library and say next.

00:10:31.059 --> 00:10:35.059
We're not going to do any kind of policy there for security right now.

00:10:35.059 --> 00:10:39.059
We're going to choose just our regular iSCSI storage,

00:10:39.059 --> 00:10:43.059
say next, and now we're going to complete.

00:10:43.059 --> 00:10:47.059
And I just created my content library.

00:10:47.059 --> 00:10:51.059
The demo one doesn't have anything in there, right?

00:10:51.159 --> 00:10:55.159
But if we go and look at our other content library that VMware

00:10:55.159 --> 00:10:59.159
gave us by default in here, we can see

00:10:59.159 --> 00:11:03.159
if we have any OVF templates, if there's any VM templates.

00:11:03.159 --> 00:11:05.159
Here we do have some other type.

00:11:05.159 --> 00:11:07.159
So what we have is we have this ISO, right?

00:11:07.159 --> 00:11:11.159
We have this ISO to deploy a Photon OS,

00:11:11.159 --> 00:11:15.159
you know, a minimal OS from VMware to a virtual machine.

00:11:15.159 --> 00:11:19.159
Another thing we can publish into our content libraries

00:11:19.260 --> 00:11:23.260
as it shows here is VM templates.

00:11:23.260 --> 00:11:27.260
So I can go back to my inventory and I have my demo

00:11:27.260 --> 00:11:31.260
machine here. I'm just going to go ahead and right click on this.

00:11:31.260 --> 00:11:35.260
I'm going to clone this virtual machine to a template

00:11:35.260 --> 00:11:39.260
to a library.

00:11:39.260 --> 00:11:43.260
I want to give it a name. I'm going to specify where I want it to go to.

00:11:43.260 --> 00:11:47.260
All right, this is the region I want it to go to.

00:11:47.359 --> 00:11:51.359
Location, so I want to go to my demo library here

00:11:51.359 --> 00:11:55.359
and what compute resource

00:11:55.359 --> 00:11:59.359
are we going to use for completing this action?

00:11:59.359 --> 00:12:03.359
What database, yeah, datastore.

00:12:03.359 --> 00:12:07.359
And then we're going to say finish. And we see it pop up there for a second.

00:12:07.359 --> 00:12:11.359
Now it's gone, right? Clone virtual machine has been

00:12:11.359 --> 00:12:15.359
completed. And if I go back to my content library

00:12:15.460 --> 00:12:19.460
and the demo one I just created, it now has a template

00:12:19.460 --> 00:12:23.460
in there, right? So there's my demo one template I just

00:12:23.460 --> 00:12:27.460
created. So as you can see, it's actually really

00:12:27.460 --> 00:12:31.460
easy to create a content library and it's actually very easy to also

00:12:31.460 --> 00:12:35.460
add content to your content library. That's how you create a content

00:12:35.460 --> 00:12:39.460
library. Actually, it's pretty simple, right? Very flexible as you

00:12:39.460 --> 00:12:43.460
can see. A lot of benefit to using this

00:12:43.559 --> 00:12:47.559
and sending out information to a lot of different people. Different groups

00:12:47.559 --> 00:12:51.559
have different needs. They can subscribe to different things. But you can

00:12:51.559 --> 00:12:55.559
keep things synchronized and in a central logical place. That's a content library.