Question: Administrating multiple workstations efficiently
Posted by gass on Mon 21 Mar 2005 at 12:23
I am a small administrator, entering the desktop area and looking for some way to improve my desktop installation and maintainence. So ... for desktop use and to help new Debian users, I made a package list and an small bash scripted intaller to install this package list on all the machines after an base install only.
It configures the /etc/apt/sources.list file and installs the package list as a meta-package.
I know there is some installer criation to do many equal instalations.
The 1st big question is: in desktop workstation, using gnome, whitch are the packages to install, to make a fully functional desktop, but not putting there any extra package to provide extra features that are not required?
The 2nd big question, and the biggest is how to administrate (upgrade packages, install, etc ... users can be managed with ldap) those workstations? Is there any solution rather than ssh to them all and make instalation by hand?
The 3rd question: and how to install personalized conf files? copy/paste?
About the repository ... it is a nice idea. Also, if you are using sarge .... geez ... it is the better answear .
the again question is to manage the config files.
Every new version have to create the new config file. Maybe yes, the easyest is to unpack the package, edit the config files, and then pack it again, and add it to our local repository.
This is a nice way when you have 10 or more machines.
with 6 or less ...
to edit confs and remake the images could be done in the server, but testing those packages requires another computer. also it can't be done by ssh, must be a local computer to test. ....
it is quite complicated
[ Parent | Reply to this comment ]
Otherwise, I use cssh (clusterssh) to open an ssh terminal on n computers. Combine with sudo, it's really easy to install a package or reconfigure a package on theses computers, without login with root account !
[ Parent | Reply to this comment ]
I use it myself for my home set up - it is incredibly powerful although fairly tricky to get up and running. But once it is there, it is extremely powerful.
If you have a number of completely identical machines, then systemimager is probably better for you, but when you are talking about multiple different types of machines, cfengine is unbeatable.
As an example - I use it for configuration files on my workstation and laptops (special configuration for the laptops) as well as my server. Apart from making administration a breeze, it also really helps backing up everything as NO changes are done locally, as cfengine controls everything and then I just need to back up the central cfengine files instead of configuration on each client.
A complete reinstallation can be done almost without any intervention!!
[ Parent | Reply to this comment ]
apt-get install systemimager-serverI use it in a terminal room with 24 client computers.
[ Parent | Reply to this comment ]
[ Parent | Reply to this comment ]
There is also a pçroject that creates a cd image witch allow you to put there the package list to install, and some scripts to run.
Also i thought to build some database acessible trought web, using php to load some package list based in ip range, or mac address.
for example, using FAI, running a nfs, then after base system wget http://server/?mac=xx:xx:xx:xx and it queries the db and returns the txt with the packages to install.
or, by ip or whatever.
[ Parent | Reply to this comment ]
--
bsod
[ Parent | Reply to this comment ]
You should have a look at puppet.
It's been covered here: part 1, part 2.
It's basically better than systemimager in case you need your machines not to be perfectly identical (eg, have a few of them configured as web-server, print-server). It's also more compelling than cfengine, because it has a notion of packages, cronjobs, and such high-level primitives. And it is able to manage config files, doing variable substitutions in them.
As far as a default package selection, I don't think debian has it. Ubuntu maintains the metapackages ubuntu-standard, ubuntu-minimal, ubuntu-desktop, ubuntu-server for that purpose.
Or a better idea is to use taksel for the default packages:
tasksel --list-tasks
tasksel --task-packages desktop
It's still pretty minimal on debian, on ubuntu you get a more complete list:
tasksel --task-packages ubuntu-desktop
[ Parent | Reply to this comment ]
Doh, this is part 2.
[ Parent | Reply to this comment ]
[ Send Message | View Steve's Scratchpad | View Weblogs ]
It seems like if you're looking at pushing the files yourself to a lot of machines - each of which has identical packages installed on them then there's one obvious approach you could take:
Create your own package repository of where all the machines will update from.
This would allow you to setup each of the workstations to automatically update themselves without you needing to ssh into them.
(Via something like cron-apt or similar).
If you wish to push updated configuration files to each host you could also do that by this route - either with a dummy "my-config" package, or by editing the default configuration files installed by the packages.
When it comes to actual package installation lists I think you're on your own - there's no single collection of packages which is "best". You choose what you like, and others will invariably choose something different.
For more complex configurations you might want to look at cfengine. It's incredibly powerful, but complex to setup...
Steve
-- Steve.org.uk
[ Parent | Reply to this comment ]