Re: Re: master server and other ideas

stephen white <[email protected]> Sat, 26 Jul 2003 20:49:03 +0930
Newsgroups gmane.linux.gentoo.sysadmin
Message-ID <[email protected]>
On Thursday, July 24, 2003, at 01:52 AM, Steve Arnold wrote:
> Last night on #gentoo-server, spoob brought up this link:

Hi. :)

> So I think if we develop our requirements a little, we can build a 
> usable concept for large-scale deployments/maintenance of both gentoo 
> and other distros...

This is what I would like to do with Gentoo, for my job. This means I'm 
getting paid to work on this kind of stuff so I should have the time to 
devote to this. :)

> Zope aside, I think the infrastructures concept is exactly what we 
> need; looking forward to lots of feedback :)

I did something very similar in my last job (as systems/network manager 
for JORN), and it does work. It would be good to see the concept 
developed into an easy-to-deploy tool, which should do a lot for 
promoting Gentoo as a solution in search of a problem. :)

Setting up CVS is the first step, and the first items checked into the 
repository are the Gentoo ebuilds that created the system from the 
ground up, and preferably the source code as well. This functionality 
is needed so that machines built at different times don't just check 
out the latest files, but groups of machines all use the same versions 
of files.

When this is complete (which hopefully isn't much more than checking 
out CVS from Gentoo at strategic times), then extra areas are created 
to hold configuration information for ebuilds. Then the last bit is to 
create ebuilds that have dependencies on the right packages (eg, 
server-ldap depends on openldap) and connect to CVS to overlay 
configuration files.

This brings up one of the engineering tradeoffs: script configuration 
or file configuration? In my experience, scripted changes are harder to 
write, but clearer and handles system upgrades better. Overlaying 
configuration files is easier to set up and handles a wider range of 
changes, but is more brittle over time.

If the infrastructures.org paper has wetted your appetite, there is 
another paper on the same site that goes into detail about order of 
changes being important. The quick summary is that if you make changes 
to the system in X Y Z order, then you may not end up with the same 
system if you make those changes in Y X Z order. This, in a nutshell, 
is what's wrong with cfengine.

The solution I used was to split the configuration scripts into half - 
one group of scripts handled building the machine, including 
partitioning, formatting and other things that can't be changed while 
the machine is operational. Any changes to the configuration in this 
area would require a complete machine rebuild.

The other group of scripts could be run on an operational machine and 
would handle making already running daemons reload configuration files. 
It is possible to handle reconfiguring entire groups of machines on the 
fly, using the same code path as rebuilding them from scratch. This was 
one of the core capabilities that ensured that running machines that 
had been updated a few times wouldn't fail when rebooted or rebuilt.

I can go into a lot more detail about how the files are arranged in CVS 
and the balance between scripting and file storage is handled, but I 
would like to read the reactions to the above first. There isn't a lot 
involved in getting this off the ground, especially with Gentoo 
adopting generally the same approach everywhere else, so this should be 
a good project with quick results.

--
   [email protected]

CRICOS Provider Number 00123M
------------------------------------------------
This email message is intended only for the addressee(s)
and contains information that may be confidential and/or
copyright.  If you are not the intended recipient please
notify the sender by reply email and immediately delete
this email. Use, disclosure or reproduction of this email
by anyone other than the intended recipient(s) is strictly
prohibited. No representation is made that this email or
any attachments are free of viruses. Virus scanning is
recommended and is the responsibility of the recipient.


--
[email protected] mailing list