Gentoo Archives: gentoo-dev

From: Hubert Mercier <anigel@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] GeNUS : how I currently manage my gentoo network (200+ machines)
Date: Sat, 21 Oct 2006 06:25:56
Message-Id: 4539BCC1.7000903@gentoo.org
1 Hi,
2
3 When I recently "officially" joined the Gentoo Project, I had the idea
4 to share a part of my work, in the way of a scripts set I've been
5 working on for more than 2 years now, which I called GeNUS (Gentoo
6 Network Update System).
7
8 My lab and teaching department massively used Linux for 4 years now,
9 and, since september 2004, I only use Gentoo on students computers. This
10 means, more than 200 computers, located on different and distant sites,
11 using VLANs. To deal with these machines, I had to create a set of
12 scripts to help me install / remove / update / reconfigure machines,
13 without leaving my cumfortable chair ;). I'll try to explain how it
14 currently works...
15
16 I use a webserver to "push" software updates. On this server we can find
17 a "machine map" : in fact a simple text file, containing one line per
18 machine. Each machine (=client) is identified by its MAC address (easily
19 extracted from the DHCP configuration). Each of these addresses is
20 followed by one or more keywords, representing the "scripts sets" to
21 apply on the client config (I currently use one scripts set per hardware
22 architecture, to apply hardware configs, and another one per "software
23 profile"). For each of these keyworks, the client downloads another
24 file, called "update list" (.ul files). Each "update list" file contains
25 the url of a few update scripts, which are to be ran on the client, to
26 effectively install / remove software, etc... Of course, the client
27 keeps a record of each update, in order not to re-run the same procedures.
28
29 To prepare the packages deployment, I use portage' hability to download
30 and use binary packages : all my packages are pre-compiled on a staging
31 machine, and then binary packages are created. This way, I save a lot of
32 power (good for my planet), and a lot of time too (good for my users,
33 and, consequently, for me :P).
34
35 GeNUS is launched at boot-time, using the "local" Gentoo service, and
36 has an integrated auto-update procedure. It is actually written in bash,
37 sometimes with a clean code, sometimes with a "less clean" code, and it
38 would probably need to be re-written more efficiently. I would be glad
39 to help to course.
40
41 Since this work saved me a lot of work / time / money in the past two
42 years, I thought maybe it could help others. Just let me know if we
43 could do something with this, if it sounds usefull/less to you, etc...
44
45 Cheers,
46
47 Hubert
48
49 --
50 gentoo-dev@g.o mailing list

Replies