I've been dabbling with the idea of starting an open source project to
provide a system administration tool for Linux, FreeeBSD and other
platforms. I've heard about similar commercial ventures by IBM, Sun,
and others, but have not found an open source project that quite fits
the image I have in my head. I am imagining a system written in several
layers. From the bottom up they go like this:
1) An admin library. This supplies a standard set of function calls
that do things like add/modify/delete a user, configure printers,
tweak network settings in the rc scripts, etc. This library provides
the platform specific part. It should include functions for querying
about the operating systems capabilities and features (i.e. we shouldn't
display a DNS admin option if the box doesn't run a DNS).
2) A server. Your basic TCP daemon that talks to a client piece and
includes support for robust user authentication and encryption of
the data stream.
3) A standardized protocol for talking between the client and server. It
should be inherently extensible, allowing new features to be added to
client and server without redefining the protocol.
4) The client piece. I envision a Java app to start with, partially
because of the cross-platform development benefits, but mainly
because I want an excuse to program in Java. :-) There is no reason
that various client versions could not be written, so if you want a
admin tool that integrates with the KDE desktop or whatever, it should
be easy to do.
Directory services (X500 style, like NDS) should be kept in mind while
designing this beast. Any good open source directory service projects
or resources I should know about?
It should be easy to plug new feature sets into the system (like an
apache admin set for example). Any thoughts on the best way to
facilitate that?
Are there any *cross platform* projects like this already begun?
What about the client/server protocol? Any existing protocols I should
look at or build on top of?
My reference platforms will be Linux and FreeBSD, but the app should
port easily to other platforms. It has been inspired by a bunch of
ugly hacks I pieced together here at DIAS to make the admin of our
servers easier for the non-technical staff. I've been telling myself
for a while that I would throw the current mess out and do it *the
right way*. I plan on implementing a trimmed down version of all four
layers and then release it as open source for further development.
right now I am collecting info for the basic design. Any input will
be greatly appreciated.
--
Thad Phetteplace
President - DIAS, Inc.