Managing your Metal Flexibly
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 90 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/40307 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 201334 / 90
2
5
8
10
12
13
14
15
17
19
21
24
25
28
29
31
32
34
36
39
40
43
44
46
50
51
52
54
55
57
58
62
65
66
67
78
79
87
88
00:00
Data managementConfiguration spaceType theoryServer (computing)Covering spaceDirect numerical simulationDynamic Host Configuration ProtocolLocal ringExplosionComputer hardwareAsynchronous Transfer ModePoint cloudProjective planeConfiguration managementData managementConfiguration spacePhysical systemDynamic Host Configuration ProtocolMeasurementAddress spaceDirect numerical simulationOperating systemComputer hardwareMultiplication signVirtual machineRight angleSlide ruleForm (programming)Product (business)Different (Kate Ryan album)Link (knot theory)Structural loadAreaType theoryLocal ringPoint cloudReal numberServer (computing)Public key certificateLibrary (computing)Connectivity (graph theory)BitInstance (computer science)VirtualizationInformationMereologyOpen setLecture/ConferenceComputer animation
02:31
InternetworkingService (economics)Computer hardwareBootingElectronic mailing listSystem programmingData managementMiniDiscRead-only memoryPhysical systemData modelComputer-generated imageryWeb pageComputer configurationTemplate (C++)RAIDVirtual machinePoint cloudComputer hardwarePhysicalismEndliche ModelltheorieMedical imagingService (economics)MiniDiscBootingServer (computing)Core dumpInstallation artQuicksortSystem administratorPhysical systemLocal ringDynamic Host Configuration ProtocolInformationMultiplication signAddress spaceReal numberLoginMathematicsWeb pageGoodness of fitWeb 2.0Right angleMoment (mathematics)Form (programming)Lecture/ConferenceComputer animation
05:01
Computer-generated imageryIP addressDemo (music)Physical systemBootingMedical imagingMereologyAddress spaceOpen setServer (computing)Virtual machineDataflowPoint (geometry)BitGreatest elementInformationForm (programming)Core dumpSource codeJSONXMLUML
06:10
Computer hardwareComputer hardwareOperating systemIP addressWeb pageInformationAddress spaceElectronic mailing listRight angleFlow separationSemiconductor memoryGoodness of fitPhysical systemServer (computing)Link (knot theory)DatabaseComputer architectureGroup actionInterface (computing)Integrated development environmentComputer animation
07:50
Asynchronous Transfer ModeBootingTouchscreenObject-oriented programmingCASE <Informatik>Partition (number theory)InformationInstallation artDemo (music)Computer hardwareWeb pageState of matterRight angleOffice suiteXMLUML
08:22
Installation artComputer hardwareDigital filterComputer-generated imageryMassMiniDiscInformationWebsiteGoogolDemo (music)VideoconferencingInformationWeb pageHard disk drivePhysical systemMultiplication signRegulärer Ausdruck <Textverarbeitung>Medical imagingVideoconferencingTotal S.A.CodeFirmwarePlug-in (computing)Product (business)Web 2.0Server (computing)Matching (graph theory)CuboidVirtual machineBootingComputer hardwareConfiguration spaceIP addressRAIDEmailRight angleSpacetimeCore dumpAlpha (investment)Electronic mailing listFunctional (mathematics)MiniDiscService (economics)Projective planeForm (programming)BitPoint (geometry)Graph (mathematics)Address spaceComputer animation
11:55
Open setPerfect groupOrder (biology)Computer hardwareLecture/ConferenceComputer animation
12:28
BootingSemiconductor memoryComputer hardwareData centerTerm (mathematics)QuicksortMedical imagingVirtual machineForm (programming)BitStress (mechanics)CodeSoftwareStructural loadVirtualizationServer (computing)Product (business)Right angleService (economics)Moment (mathematics)NP-hardMultiplication signLecture/Conference
14:07
Computer animation
Transcript: English(auto-generated)
00:01
So, yep, my name's Greg Sutcliffe, I work for Red Hat, I work on a project called The Foreman, and I'm gonna show you a little bit this morning about a feature we're working on. But first I'm gonna talk a little bit about Foreman. Just for my info, who already knows a bit about Foreman? Who's tried it, used it, played with it?
00:21
Okay, about what I expected, about half the room. So, anyone who's seen a Foreman talk has seen this slide. We all use it. And so for the people who don't know what Foreman is, basically it's a provisioning and infrastructure management product, project, in which we try and get into the areas that other configuration management tools don't give you.
00:45
So that's things like getting the OS onto the metal, it's spinning up cloud instances, it's getting certificates into your configuration management system. So it's all about the pre-installation, OS management, configuration, and then also helping your configuration management, providing data to it,
01:01
so that's drift management, auditing, and so on. So it gives you, it has a lot of components to it, a lot of moving parts, and I have to cover something in about four minutes that most people take an hour over. So, we tie into DNS, we tie into DHCP, TFTP, PXE,
01:22
we try and get all of the provisioning stack in one place so that you can just spin up a machine in a couple of clicks and all of the operating system provisioning is taken care of for you, we support loads of operating systems, we support lots of different types of machines, so real hardware, cloud stuff, ECT, Rackspace,
01:41
local virtualization on libvert or revm or overt. So, it's about trying to get one workflow for all of your stuff. And it's also configuration management, so reports, audits, etc. So, if you don't know what Foreman is and you want to know more about this,
02:01
I've got some links at the end, you can find out more, but unfortunately the rest of this probably won't make a lot of sense. So, this is lovely, right? We have this management, it's all fantastic. Not quite. If you've just had a delivery of 50 servers, you've got to go and type those MAC addresses in by hand. And no matter how good your monkeys are at typing in MAC addresses,
02:23
there's going to be a typo somewhere. You're going to make a mistake and you won't know that. And in a week's time, you'll try and provision that machine and it won't work. And you'll make this face, obligatory lolcat picture, you'll make this face because it won't work and you'll be like, but this is simple, every other server works,
02:42
all the MAC addresses work, everything's fine, right? Two hours later when you've finished with your DHCP logs and your TCP dumps, and you find that you made a typo two weeks ago, you're going to be annoyed. So there's got to be a better way to handle real metal. You know, cloud, we don't care because the MAC addresses are given to us.
03:02
Libvert, we don't care, the MAC addresses are given to us. But just this one time for real physical hardware, we don't want to have to do that work. So this brings us on to the metal as a service model. How does it work? So before we go on how to form and do it, just general sort of overview of metal as a service. The idea is that you make a distinction between hardware you know about
03:22
and hardware you don't know about. So you make sure all your unknown hardware machines you've never seen before, you boot them to some separate system. So you can do this very easily with pixie or ipixie. You can do it slightly more complicated ways as well. But the core concept is always the same. Boot your unknown hardware into some kind of RAM disk
03:41
where it can register itself with a central system. And then it sends all its information, what's my hardware, it sends it up, your central system knows about it, and then you as an admin can go and query that hardware and you can say, okay, I need a new web server, give me something with 500 gig of disk and 24 gig of RAM or whatever I've got, right?
04:01
And then you maintain the system, it's a known system, it boots off its local drive, everything's good, and when you're finished with it, it doesn't need to be a web server anymore, you delete it, it boots back up off the RAM disk and comes back into the pool. So we map Forman onto that reasonably closely. We have a pixie image that's based on Tinycore Linux at the moment.
04:23
We're still looking at exactly what the final image should be. But yeah, it works pretty well. It boots up, it queries itself, it finds out what hardware it's got, and it registers itself into Forman, which is great. Get all the hardware data, get all of the things you need to know about the system.
04:42
And then we have a page where you can view all of that data, you can tell it to refresh if you're missing, if you think it's out of date. I mean, hardware doesn't change very often, right? But still, it's there. And you can provision it. So that will send a signal back to the hardware, reboot into the installer, anaconda, precede, whatever.
05:02
So what I'd like to do at this point is a demo. However, demos in Lightning Talks are really, really risky. Also, the demo of a provisioning system generally takes longer than 15 minutes. So what I have, I'm going to talk you through the workflow. I have some screenshots that I did a few days ago. I'm also around for the rest of the day, so I'm going to hang out at the overt booth later on.
05:22
I'll probably be wearing that hat. So if you want to see the demo, or you want to talk about any part of Forman, you can come see me there. So this is a VM. It's a VM because that way I can take the screenshots, but in reality, you'd be thinking of this as a real physical server. And you can see it's booted up. Forman has no concept that this machine has ever existed before.
05:43
And we've got a Pixy image. It comes up, it boots up, and Pixy says, well, I don't know who you are, so you're going to boot this discovery image. And once it's booted, you can see it's Tinycore Linux. It says so in the bottom corner. The reason I've got this bit at the bottom is so you can see the MAC address.
06:00
The last two characters are 0A if you can't read it, but that's just there so you can see the flow through the rest of the screenshots. So we've got an IP address. We've got a MAC address. It's all come up. In Forman, some new buttons. So again, if you've not seen the Forman interface, the Hosts page is something we see very often. And there's a new button here in the top right called Discovered Hosts all the way up there.
06:22
If you click that, you come through to this pool of hardware information. You want to see all the servers that have registered themselves. So in reality, in a real infrastructure, you probably have quite a long list. Obviously, I've only got one because it's a VM. But again, it's the same MAC address. We've got 0A. We can tell that it's KVM. We can tell that it checked in a long time ago.
06:41
So I could, if I wanted to, click that Refresh Facts button and just check the system's still online, make sure that I can, if I try and provision it, it will actually work. So I could click through onto, so you can see that the MAC address is actually a link so I can click through and I can find out more about this host. And this probably doesn't come out
07:00
very well but you can see a few things. Down the bottom, we've got how much memory we've got, got things about the architecture, interfaces, we know about the system, right? So we can find out if this is something we want to use. And once we've got a host we're happy with and we want to provision this, turn it into a database server, whatever, we've got a button up there, Provision.
07:21
And that brings you onto the Edit page. So this is actually three separate screenshots kind of merged together because the Edit page has quite a lot of tabs on it. So on the left, we've got to give this a name. We can give it host groups, environments, all that good puppet stuff. We've already got the MAC address and the IP address filled in for us on the top right because we know that. The hardware's already running
07:41
so we can fill that information in and we can choose an operating system for it. So, yeah, Fedora 17 or something. So as soon as I hit Submit on that Edit page, it's going to come through, it's going to send a signal to the hardware, it's going to reboot it, in this case I was doing Debian.
08:00
Oops. So it boots back up, it comes up, it goes into the installer, we get a nice partitioning information. If you're watching the screen right, I mean, with real hardware, you'd never go and plug a monitor in just to check it's working, but just to show it's there. And so that's going to take, obviously, a while. This is why it didn't do a demo because OS installs take like 20 minutes.
08:23
And eventually it comes up, it becomes a real host. So this is a screenshot from the host page informer. Again, if you've not seen it, we get nice graphs, we get information on the left. Again, you can see the same IP address, same MAC address, it's the same machine, and it's all flowing through and becoming a real host, you can manage it, you can look after it, drift, audits, all that good stuff.
08:44
And eventually when you're done with it, you can hit that delete button. Oh, and just to prove a point, although it doesn't come out very well, that's the actual name of the machine from the libvert console, it's come back up. With the right name, everything's good. When we're done, we hit that delete button in the top right hand side, reboot the system,
09:00
it's gonna go straight back into that discovered host page, we can use it again for another role. Give it a new host name, reprovision it with a different OS, whatever we wanna do with it. So that's kind of where it's at right now. This is a feature that's likely to be coming later this year, I think. Hopefully. We're not very good at releasing
09:21
very quickly, informer. But it can be played with, there's details on our mailing list of how you can get this up and running right now if you wanna play with it. It's very alpha. We've got some more stuff that needs to happen. So we need more hardware data on that fax page, that's something we've actually, some of the community members and I were hacking on a few days ago.
09:41
So we've actually got the disk structure, or at least the total amount of disk space is now properly displayed, so that's good. We wanna add filtering, so again, if you're familiar, you know you can search for hosts in Foreman, so we'd like to add the same kind of search functionality, so you can say show me all the hosts that have got more than 500 gig disk
10:01
or more than 24 cores or something. So that needs to be in there. And we'd quite like to do a kind of quotering system, there are other metal as a service products that are coming together, some of them do a kind of a quotary system where you say the first 20 hosts that come up that match these criteria, I want them to have Fedora on it
10:22
with this disk structure. So that would be quite cool I think, so you can kind of auto provision the next lot of hardware that gets shipped, and okay you might be in bed, but the systems are still built right. Some things I'd quite like, so this is kind of a fairly solid roadmap, these are things we'd like to do, these are a couple of things I thought of
10:40
while I was writing the talk, I'd quite like to see whether you could just have some tick boxes, if I need to provision 10 web servers, I don't wanna do them one at a time, so it would be quite nice to just tick, tick, tick, tick, provision, give it some kind of regex for the host name. And I think that USB or pixie boot image could be made so that you can
11:01
load more code into it, maybe send it some custom facts, send it some extra plugins. One of the things that we've been talking about is how you've got a system that's sitting there running a RAM disk, so why don't you use this for hardware RAID configuration or BIOS updates or firmware updates or something like that. So there's a lot we could do
11:20
with the actual image itself. Okay, so that's kind of the total of the talk, there's a lot more information about Foreman, it's a huge project, an hour wouldn't do it justice, but if you wanna know a lot more about it,
11:40
there's a video by one of my colleagues, which is superb, we've got all our community, we're very very active on IRC, so do come and talk to us. And yeah, I guess I'm done, a little bit early. I should also say again, I will be at the overt stand
12:00
for most of the day. Give me any microphone, you will probably need to come here in order to... I can repeat the question. Ah, perfect.
12:26
Okay, so the question is how do you deal with a really large amount of hardware, like a thousand machines or something like that. I can think of a few problems with that, it might be quite a lot of load if you boot them all up at the same time, that could be interesting, I think that would work, provided the requests don't get lost somewhere.
12:42
If you try and provision a thousand machines at once, you're gonna stress your pixie server, that's for sure. But in terms of how Foreman would deal with it, I don't think it's too bad, we want to add filtering to this, so you can say, right, give me all the machines in this data center, and then give me all the machines in this data center that are Dell
13:01
and have this much memory. So you can pick out exactly the sort of hardware you're looking for. So well done, you've spotted the deliberate mistake, where I was meant to talk about other people who are doing metal as a service, right?
13:21
So there's a few people who are doing it, Ubuntu are doing it, Puppet, Razor are doing it. We started out looking at Razor, we contributed some code to them, which was quite useful, while we were working out exactly how to do the discovery image. Our image is built in a very similar way to the Razor image. They have a different way
13:40
of looking at templating to us. So it is possible to make the two work on the same network at the moment, it's a little bit fiddly in places. You can have, sort of, form it on one virtual machine, say, and Razor on another virtual machine, and have it all kind of managing the network together. It does work.
14:01
But realistically, they're both provisioning products, right? So why would you have two? No more? Okay.