|
|
Coolnesses of the Arusha Project
Our old friend Sigbjorn Finne used to say, ``The
coolness-to-usefulness ratio must always be greater than
one.'' The Arusha Project (ARK) passes this test, easily.
(Disclaimer: the current ARK code doesn't do all of this
cool stuff. The point is, the ARK framework and way of
thinking will make this stuff possible.)
- One command builds all packages for all platforms at
a site:
% ark package reveal ALL
-
A ``package'' that is your own sendmail config is handled
the same way as a package that is the FlexLM
license manager, which is handled the same way
as an open-source package:
% ark package deploy sendmail-config flexlm--6.02 apache--2.0.45
-
You can have multiple versions of a package active at once:
% ark package reveal xemacs--21.4.12 xemacs--21.5.11
-
Whether a package is local to a host, or whether a single
copy is shared among many hosts (e.g. by NFS) is completely configurable,
and managed automatically.
-
Hosts, users, ``disk chunks'', web sites, etc., can be
handled within one framework; so...
% ark user create fourth-year-class
% ark host verify sparc-solaris7
-
If you have ``at boot time'' actions associated with packages,
users, web sites, etc., they can all be done (in the right
order) with:
# ark package at-boot --hosts=. --quiet ALL
# ark user at-boot --hosts=. --quiet ALL
# ark website at-boot --hosts=. --quiet ALL
(Similarly for ``at shutdown time'', and much the same for
regular tasks to be done by `cron'...)
-
Most importantly, you can collaborate with
like-minded sysadmins (in `teams') on the stuff you agree about!
If, for example, you agree with how team Sidai does
Apache, then your total configuration effort might be:
<package name="apache--2.0.45" xml-version="1">
<status>revealed</status>
<prototypes>
<prototype team="sidai" name="apache"/>
<prototype team="." name="ALL"/>
</prototypes>
<hosts-supported><list>
<item>sparc-solaris-web-server</item>
</list></hosts-supported>
</package>
If, however, you disagreed with the Sidai folks on the
`install-bits' method, you would simply
override theirs by adding to the above:
<install-bits>
<code><![CDATA[
# your code here: shell, Python, or Perl script
]]></code></method>
</install-bits>
ToDo: the rest
|