Re: Choosing an infrastructure tool
Will Partain <[email protected]> Mon, 23 Sep 2002 13:51:15 +0100
| Newsgroups | gmane.comp.sysutils.ark.devel |
|---|---|
| Message-ID | <[email protected]> |
[added ark-dev list, as I hope to cyrogenically freeze
ark-users for a while, soon...]
Joel writes:
> Stepping back, I want the site-wide ordered installations of isconf
> combined with the collected application-specific wisdom captured in Arusha
> and SEPP.
(Incidentally, well-described and nicely put.)
If you look at the itches being scratched when these tools
were developed, I suspect it will be clear why they do what
they do :-) Certainly on the Arusha side...
I'm on the "technical computing" side of the world. I had
about twenty Unix boxen of four platforms (don't ask...),
with a rich and constantly changing tool mix (at least "many
dozens" of tools). I wanted an engineer to be able to sit
down in front of any box, and it would look like any other
(tool-wise) and everything would Just Work (TM). Of course,
I also wanted to manage the
what-sysadmins-mean-by-configuration stuff
(e.g. /etc/resolv.conf, automount maps, etc.) in some
unified way (i.e. not using a different tool for each
platform).
Note that a lot of the "configuration" stuff is expressed as
"packages". While 'bison--1.34' is a package in the obvious
tool sorta way, 'sudo-config' is the package that gets a
correct /etc/sudoers onto every box, 'findutils-config' has
the smarts to generate indices for 'locate' every night,
'net-config' generates /etc/hosts and a bunch of other stuff
for every host, and so on.
The business of taking a machine from cold metal to
integrated into the network came up maybe twice a year. So
I did it by hand. Couldn't justify the effort to do it
otherwise (even if I would love to have a few weeks to play
with JumpStart, Kickstart, Ignite/UX, Debian FAI ... :-)
If I *were* to do something like JumpStart, I'd [beware
hand-waving ahead...]:
* Have a package (jumpstart--N.M) that simply puts the
JumpStart software in place.
* Have another package (jumpstart-bits--N.M ?) that snaffles
all the Solaris and other bits off of Sun CDs and puts
them where they need to be.
* Have yet another package (jumpstart-local ?) that defines
my local scripts and Stuff (TM) used in my own JumpStart
world.
* A final package (jumpstart-config) of bits and pieces that
tie things together; possibly e.g. inetd settings for a
tftp server, a script for /etc/init.d, ... whatever.
* The above split into packages is arbitrary, and needn't be
exactly that way. The idea is simply to be able to change
one piece of the puzzle (e.g. the precise release of Solaris
being JumpStarted) without doing the whole thing over.
* Then, over on the ARK hosts side, you would give enough
information so that a particular host could be
jumpstarted. So, the needful IP address for host 'foo'
might come from an <ip-addresses> field in foo.xml;
whereas the needful DHCP server, being the same for all
hosts in a lab, would come from 'labhost.xml', where 'foo'
has 'labhost' as one of its prototypes. (There are a few
common Arusha idioms for this kind of "commoning up".)
* All the info needed should now have been specified.
As you would probably have <constraints> from
jumpstart-config back to the other packages, you'd then
type
$ ark package reveal --interactive=yes jumpstart-config
and it would sail through the work :-) (The
--interactive=yes is a *guess*; I suspect the method that
asks you to change the CD would need to be marked
'interactive'...)
* Walk to a machine, jumpstart it; get a cup of coffee.
Depending on what you specified in the mess above, you
might subsequently do an 'ark package reveal ALL',
or something else of your choice.
If I were going to use isconf to do the
cold-metal-to-vaguely-sane step, I would (similarly) have an
isconf--3.x package just to put the bits in place, and
isconf-config to capture my local settings/hacks/etc.
[Incidentally, the 'install' method in doing Sidai-style
package corresponds to "create a gold-server copy". I
personally would *love* to see the subsequent per-host steps
('deploy' - get the bits onto each machine, and 'reveal' -
make it "live") be handled by something like cfengine.]
Good question; hope this helps.
Will
PS: If you are going to be at LISA (and I hope you are :-),
and interested in this kind of thing, I hope to talk to you.
I will even humiliate myself again and wear a Jimmy Wig, for
Obvious Identification purposes.
PPS: I will re-iterate my non-proudness :-) for writing Yet
Another Multi-Platform package manager; the choices weren't
good when I was looking four years ago. RPM -- fine, but
ever tried to get a set of multi-platform friendly .spec
files? Zoularis - if it worked, it would be just *too* cool
to have access to the NetBSD ports tree; but it was brittle
at best.
There are other choices now (e.g. OpenPKG,
http://www.openpkg.org/), but I haven't played with them.
I am near-certain any package manager could drop in to
replace our homebrew one.
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf