Back in March 18, 2002 I looked at a different approach from the weblet
configuration. The date reflects the date of a Visio diagram I drew of
my concept. (It was version four of Visio before Microsoft bought them
and I wasn't dual booting into Linux at home at the time.) Anyhow, the
concept took me on an odyssey in the last year. The odyssey started
when I said what if I keep all the .lrp packaging the same. After all
there is a known algorithm on how to open and edit one of these
archives. All that is required is a place to uncompress and untar the
file. Moreover, creating an ISO or floppy image is a known algorithm,
etc. I also have been fascinated by Red Hat's Anaconda installer. One
of the things that the LEAF project has done is to make me aware of how
many applications use this whole Linux on a boot diskette idea. So I
spent some time musing on combining the use of a modified Anaconda
installer that would image a diskette, ISO, or other media. Part of the
odyssey included exploring Anaconda; learning all about the cdrecord
tools; learning about LRP packages; and studying a book on Python GUI
programming, etc. (I want to do a brain dump of the cd stuff, when time
permits.) The final concept was to leave each LEAF distribution the same
and configure them from a separate boot up configuration system. Now
you could even run this sort of a system in a User Mode Linux system.
Here's some of the benefits that I thought that could be achieved with
this design. I decided to call this design the Gila Monster installer
keeping in line with the snake theme of the Python language used to
program Anaconda, and Arizona, USA where I live:
o It uses the first law of reverse engineering, "Always steal the best."
Its not really stealing because of open source but the Red Hat Anaconda
installer has to determine all the hardware issues that Ray Olszewski
spoke of. However, Anaconda includes kudzu, the hardware detection
tool. How many support emails have been generated because a user cannot
determine their network cards? kudzu could detect these and other
hardware devices.
o Anaconda includes a character version of the install that is executed
on low memory platforms like LEAF.
o The command line supports passing in command line parameters. For
super low memory situations, a command could be passed to the modified
system so that just the hardware information is collected. This
information could be saved on a diskette. An upscale platform could
read in the diskette and run the full GUI configuration tools that could
be built to image a working LEAF system.
o Since the configuration files where designed using XML, the Simple API
for XML, or SAX parser would be used because it supports lower memory
situations better than the Document Object Model, or DOM parser.
o Red Hat already has lots of configuration screens created. For
example a user could use the existing Anaconda time configuration screen
to set their time zone. The files found at
http://leaf.sourceforge.net/devel/cstein/files/kernels/zoneinfo/ are
already on the Anaconda installer.
o The algorithm that putty uses to generate ssh keys could be duplicated
in a new screen.
o The cdrecord tools could be used to create either ISOs or burn a CD
version of a firewall. After all kudzu detects CD-RW and DVD-RW drives
for Red Hat. If the installer was executed from a platform with a CD-RW
drive, then say, a Dachstein CD could burned.
o GUI tools could be used to drag and drop a LEAF to LEAF distributed
office configuration. This may simply the issue of two related, say,
Real Estate offices hooking their networks works together in a ssh,
stunnel, CIPE, or ipsec tunnel.
o Once configured, spare diskettes could be created by using the
existing Anaconda kick start mechanism.
o The biggest advantage is that you would not have to squeeze down into
a weblet footprint. A Gila Monster ISO would be created. It would have
all Python programs, etc. A user would burn the Gila Monster ISO. Then
boot up the system. Instead of configuring a Red Hat system, the
installer would configure LEAF distributions. The XML configuration file
could be stored on a floppy. However, if a CD-RW disk is used it may be
saved on the installer CD?
o A user would not have to download all the files to run Python, etc.
The whole system would be on one ISO that the user would burn with their
favorite burner software. If the user prefers MS Windows, then the user
would boot the system from CD. Once a working LEAF configuration was
created, the user would reboot into their normal workstation mode.
So being that my day job includes application design using Oracle
databases, I spent some time coming up with an initial normalization of
the LEAF firewalls. The ideas I settled on were:
o A user may have one or more ISP. An ISP would include information
about a corporate LAN should LEAF be used as a router in an organization.
o A user may have one or more hardware platforms that will be used to
host LEAF. These could include one or more descriptions of the same PC,
but with fantasy hardware added like Disk On Module, CD-ROMs, Zip
drives, etc.
o A user may have one or more root passwords or other users that he
would like to use. This needs to be normalized away from the other
files because the other files could be sent to the mailing list for
trouble shooting. This file would also contain other security
information that would require configuration such as parts of the SSH keys.
o Details of each LEAF distributions has known attributes. All of the
frequently configured attributes could be collected in object
representing that distribution. As the design system matured additional
features that were coded by hand could be added to this file.
Supporting GUI configuration tools could be created to address these
variations.
o Likewise the firewalls that run on the distributions has known
attributes. These could be configured just like the distributions
attributes.
o Finally, all these other entities or normalized tables would be
brought together in a user configuration file. A pointer to the ISP,
security information, platform, LEAF distribution, and firewall would be
kept here. A GUI would be developed to allow a person to point an click
to configure a Dachstein release. Perhaps they want to try Bering.
Select all the other items and choose Bering.
I think the only challenge with either the weblet configuration system
or this concept is the amount of work involved to understand the problem
and come up with a working system. So far I am just at the
understanding phase. Although a beginning GilaMonster.xml file is
presented below. It is a good thing that family got in the way of
making more progress on this design. But it was a bad thing that work
wasn't completed because it is an interesting problem.
Here's a picture of how the files work together. I created them as one
file with the beginning <GilaMonster> tag. However, they need to be
split apart for support reasons.
+--------------------+ +--------------------+
| | | |
| GMUserConfig |<--------| GMUserPlatformList |
| |<---+ | |
+--------------------+ | +--------------------+
^ |
| |
+--------------------+ | +--------------------+
| | | | |
| GMUserSecurity | +----| GMUserISP |
| | | |
+--------------------+ +--------------------+
+--------------------+
| |
| GMLEAF |
| |
+--------------------+
+--------------------+
| |
| GMUserFirewalls |
| |
+--------------------+
Notes from 3/18/2002:
GMUserConfig - Contains all the information to complete a LEAF install.
It references all the other major elements starting with GM. The
other elements contain a combination of both elements and attributes.
GMUserSecurity - Contains just the root password and other security
information. One password may be used for several configurations.
Secure Shell encryption Keys and other secure tunnel information could
also be stored here in some sort of key safe.
GMUserPlatformList - Contains all the hardware information that will be
used to host a LEAF configuration. For example information pertaining
to processor, Ethernet cards and storage media would be kept here.
Multiple GMUserConfigs could reference any platform described here.
GMUserISP - Contains all the ISP information. This includes the type of
ISP--cable, DSL, Dialup--and static, dynamic IP information, or PPP
script to connect to the ISP. A user could have multiple ISPs.
However, all the ISP information that needs to be configured once would
live here. Mutilple GMUserConfigs could then reference the same ISP
information.
GMLEAF - Contains all the default configuration data for each
distribution. All the IP address, and other variables that are edited
in the current LEAF method of configuring a distribution would be stored
here.
GMLEAFFirewalls - Contains all the default firewall configuration data
for each firewall distribution. Like GMLEAF all the firewall
information would have to be collected.
Being a good boy I typed this collection of thoughts in AbiWord first
before pasting it into Mozilla. ;-)
Greg Morgan
<GilaMonster>
<GMUserConfig>
<GPLcomment>GPL License and Copyright</GPLcomment>
<config name="" platformID="" LEAFID="" firewallID="" userispID=""
securityID="" sslkeyID="" description="">
</config>
</GMUserConfig>
<GMUserSecurity>
<GPLcomment>GPL License and Copyright</GPLcomment>
<security name="" securityID="" description="">
<user ID="root" password="" MD5=""/>
<user ID="oxyuser" password="" MD5=""/>
</security>
<ssl name="" sslkeyID="" description=" this is the beginning of a
key safe">
</ssl>
</GMUserSecurity>
<GMUserPlatformList>
<GPLcomment>GPL License and Copyright</GPLcomment>
<Platform name="" PlatformID="" memorysize="" description="">
<device name="ie/dev/fd0" type="floppy"</device>
</Platform>
</GMUserPlatformList>
<GMUserISP>
<GPLcomment>GPL License and Copyright i.e. Information about ISP
that can be used in all configurations. The list would include
DNS servers, Static or Dynamic IPs, Gateways. Note that a user
_May_ have several ISP accounts. Moreover, once defined the account
_May_ be used in multiple configurations. The user could be trying
several distributions for example. </GPLcomment>
<ISP name="" userispID="" description="">
</ISP>
</GMUserISP>
<GMLEAF>
<GPLcomment>GPL License and Copyright i.e. has all the parameters
to a stock distribution</GPLcomment>
<LEAF name="Bering" LEAFID="BRNG" type="LEAF" description="">
</LEAF>
<LEAF name="Dachstien" LEAFID="DS" type="LEAF" description="">
</LEAF>
<LEAF name="Misquito" LEAFID="MQ" type="affiliate" description="">
</LEAF>
<LEAF name="Oxygen" LEAFID="OXY" type="LEAF" description="">
</LEAF>
<LEAF name="Packet Filter" LEAFID="PF" type="LEAF" description="">
</LEAF>
<LEAF name="Wireless-Gateway-On-A-Floppy" LEAFID="WRP" type="LEAF"
description="">
</LEAF>
</GMLEAF>
<GMLEAFFirewalls>
<GPLcomment>GPL License and Copyright</GPLcomment>
<firewall name="Seattle Firewall" firewallID="seawall" description="">
</firewall>
<firewall name="Shoreline FireWall" firewallID="shorewall"
description="">
</firewall>
<firewall name="The rfc Linux Firewall" firewallID="rfc"
description="">
</firewall>
<firewall name="Echowall" firewallID="ew" description="">
</firewall>
<firewall name="Mountian and Stein releases" firewallID="ms"
description="">
</firewall>
</GMLEAFFirewalls>
</GilaMonster>
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel
- Re: [leaf-devel] Template system [was Webconfig... Jaime Nebrera Herrera
- Re: [leaf-devel] Template system [was Webconfig... Lynn Avants
- Re: [leaf-devel] Template system [was Webco... Michael D. Schleif
- Re: [leaf-devel] New Package System Matt Schalit
- Re: [leaf-devel] Template system [was Webconfigurati... Chad Carr
- Re: [leaf-devel] Template system [was Webconfig... Matt Schalit
- Re: [leaf-devel] Template system [was Webco... Chad Carr
- Re: [leaf-devel] Template system [was W... Matt Schalit
- Re: [leaf-devel] Template system [was Webconfigurati... Charles Steinkuehler
- Re: [leaf-devel] Template system [was Webconfigurati... Greg Morgan
- Re: [leaf-devel] Template system [was Webconfigurati... Greg Morgan
- Re: [leaf-devel] Template system [was Webconfig... Matt Schalit
- Re: [leaf-devel] Template system [was Webco... Lynn Avants
- Re: [leaf-devel] Template system [was W... Matt Schalit
- [leaf-devel] IPKG Lynn Avants