centralizing network configuration
Bill McGonigle
bill at bfccomputing.com
Tue May 29 23:31:54 EDT 2007
Wow, what a great, thoughtful response.
On May 28, 2007, at 11:56, Paul Lussier wrote:
> host overpriced.foo.com {
> # eth0
> hardware ethernet 00:16:cb:97:67:55;
> fixed-address overpriced;
> }
oh, neat. I didn't realize you could use a host name in fixed-
address - that helps remove one duplication I have.
> Currently, all the hostnames and MAC addresses are tracked in a
> database and the DHCP config files are dynamically generated from a
> script which deals with the revision control aspect of the config
> files, and starts/stops the DHCP server.
That's a good idea. I *love* 'live documentation' because if you
break your documentation your stuff stops working. This encourages
good documentation!
> - there's always (My,Postgre)SQL and a bunch of p(erl,ython) or
> bash glue.
I love those kind of apps - when the system is done booting.
> - As you mentioned, a single text file which describes everything for
> each host, but one file seems a bit of a pain. If you craft the
> file to be dealt with only via scripts, then it becomes
> unreadable/manageable by humans, but keeping it easily manageable
> by humans makes it not easily parsable by scripts.
Yeah... this question never stops popping up, does it? I want to
like YAML, honestly, but...
> Obviously what you're doing here is mimicking
> the tables of a relational database, but without all the overhead (and
> none of the relational data integrity) that comes with using a
> database engine.
Hmm, I have to think about this some more, but the idea intrigues
me. It might be too confusing for the human users, though - not sure.
> And I'd certainly be very interested in learning more
> about the environment which you're trying to manage, since that might
> spur more ideas.
I basically see the same problem over and over again - a small
business need a 'network manager'. It needs to handle DHCP, DNS, and
various network services (file sharing, mail, web site, webmail,
network monitoring, etc.). The management of it is usually done by
somebody onsite who can understand what DHCP and DNS do, but isn't
really going to edit the zone files by hand. Webmin is sometimes a
little too much, and tools like that often don't understand DNS views
(where www.example.com gets one answer from the LAN or DMZ and a
different answer from everywhere else).
Your idea of coming out of a database I think is touching on the
right concept - that database describes 'our network' and things like
dhcpd.conf and zone files are really just expressions of that
information in the format a particular program likes for input. It
brings up all kinds of thoughts on how to store the data, how to
interact with that data, multiple levels of users, how much can be
auto-discovered, etc. Maybe I really don't want to create a new
Apache virtual host config file - maybe I want to tell an app to make
me a new web service with 'these parameters'. Some of that sounds
like a GUI, but there's more to it than that - it's thinking of the
traditional config files an an API between this-nebulous-undefined-
thing and the time-proven core services that support things people
want to do.
One thing I do know is that I never want to use a binary database
store as my primary source of data - I've seen far too much
corruption when people think they can pull this off (Mac, Windows).
Oh, sure, a corruption proof-database would be fine (har, har, har).
I'm coming at this from a Lazy perspective, but I think the capital L
is justified.
-Bill
-----
Bill McGonigle, Owner Work: 603.667.4000
BFC Computing, LLC Home: 603.448.1668
bill at bfccomputing.com Cell: 603.252.2606
http://www.bfccomputing.com/ Page: 603.442.1833
Blog: http://blog.bfccomputing.com/
VCard: http://bfccomputing.com/vcard/bill.vcf
More information about the gnhlug-discuss
mailing list