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 |