Had a good evening with Hunter and discussed many things. Hopefully, this posting will help me remember some of them when I come back from RSCM in a week.
I’ve been thinking a lot about what an Advanced Management System is. A modern tool for managing hundreds to thousands of Linux clients. A tool that is to system administrations as Yum/Up2date is to deploying package errata. An RHN For the Masses (RFTM) if you will. Sorry, I just had to include that one.
Honestly, as I’ve put so much thought into this I’m surprised that somebody didn’t finish one and got it into Fedora Extras last week. If you manage enough Linux machines you already have tools for your organization to aid in management. Everyone I know has some sort of dynamic kickstart generator. Usually based off of keywords which instruct some scripts to glue bits of a kickstart template together. I have a primitive XMLRPC client/server setup to distribute information to and from my machines at work. The problem is that everyone has written up some tools like this and they are all very site specific.
The goal is to create a general management system. I’m not familiar with any of the commercial ones. All I have for an example is RHN. Its a bad example and limits my thinking. Fortunately, that’s were other folks with their own brains come into play.
What do we have? We have Yum. That shall be our RPM Agent. The writing on the wall says that Up2date wont be with us much longer. Although the RHN/Up2date protocol may be with us for a while and is a tool in our favor. We also have a client and protocol to handle Actions, again thanks to RHN and Up2date. We also have the framework of Current. That framework is still very primitive with next to no functionality, but its the framework to base off of.
The big question that I had was is the RPM Agent the center piece off the whole ball of wax, or is it just another Action? I got some sanity from Hunter. Yes, the RPM Agent is just another action in the system. RHN lets you see and muck with each and every package on each and every system. That’s not really what you want to do. You want to be able to say “Make client foo an NFS server.” “Make client bar a Web server that runs Bugzilla.”
That helped me come to terms with the next issue. I want to add Yum’s Repo Metadata format to Current to work us to this goal. The RHN protocol allows you to authenticate each and every HTTP request into the package channels/repositories. Yum has no concept of that and looks like it never will. Being that the RPM Agent is not any more special that a normal Action I think the answer here is just to not authenticate HTTP requests this way. We track clients and monitor what they do when they log into the Current server and poll for actions. Probably, the entire package repositories should be separate from this mythical uber management server, but in order to support the RHN protocol it must be integrated.
I’d really like to make Current a useful project. But these goals are not trivial. What about including methods to kickstart clients? How does a user of this mythical bit of software add Actions, Keywords, Kickstart Configurations in a manner that is sane? I don’t know. It will probably be along the lines of code up a python module that looks like foo.