Hi list, Amongst many things that have kept me away from doing XS dev work, I've recently been working with the local team for de La Rioja (Argentina) deployment.
One of the key topics was remote admin, as they have a fast-growing number of XSs. So it was a good chance to rip into Puppet. The result is a set of sample Puppet configurations. As an old isconf hand, I was very gladly surprised with Puppet... and then I realised it's all Luke Kanies' work! (See http://madstop.com/2008/11/01/a-short-history-of-puppet-pt1/ ) =http://wiki.laptop.org/go/XS_Puppet follows = Most OLPC deployments have a large number of schools. When deploying School Servers, this means there is a large number of XSs. Managing them is a challenge. We use [http://www.puppetlabs.com/puppet/introduction/ Puppet] to run the administration of these servers. Puppet is an outstanding server management tool, well known, and extensively documented. To keep matters simple and scalable, we use some specific techniques: * We focus on maintaining all the XSs with the exact same code and configuration. Where some XSs must behave differently, we handle that in the code deployed to the XS itself. For an example of this in action, see how the httpd service picks an appropriate configuration at startup. * We use a tiny part of the power of Puppet to keep things simple. Puppet is enormously powerful, and can lead to complex configurations. = Getting started = Set up a "Puppeteer" -- the 'configuration server'. This server needs to have a stable FQDN and to be reachable by all the XSs (usually this means a public IP address). See the excellent [http://docs.puppetlabs.com/ puppet documentation] on how to setup a Puppet server. Grab the example configuration we provide below. == Installing Puppet in your XS== On XS-0.6, you will need to * Install puppetd and all its dependencies (TODO: list the dependencies) * Install an /etc/sysconfig/puppetd file naming the FQDN of your "puppeteer" * Set the service to run (and start it up) == Get started with the example configuration == We have an example configuration, based on an actual deployment successfully using Puppet http://dev.laptop.org/git/users/martin/puppet-example.git/tree/ See the [http://dev.laptop.org/git/users/martin/puppet-example.git/tree/README README] and the actual config files and scripts for working configurations and code. =Puppet Documentation= Puppet has excellent and extensive documentation. Sometimes it is daunting -- puppet allows very fine grained control of what is on every server. We only use a small part of Puppet, so you can skip the complex parts. * http://docs.puppetlabs.com/ * [http://apress.com/book/view/9781430230571 Pro Puppet, by James Turnbull, Avi Miller] * [http://apress.com/book/view/1590599780 Pulling Strings with Puppet: Configuration Management Made Easy, by James Turnbull] * [http://groups.google.com/group/puppet-users/browse_thread/thread/b6db63f1bb84166e?fwc=1 "Puppet Users" list discussion about Puppet on the XS] =To Do= * Document how to bootstrap this from kickstart * Implement usbmount scripts to hook into puppet, so disconnected XSs can read configuration from a USB disk -- martin.langh...@gmail.com mar...@laptop.org -- School Server Architect - ask interesting questions - don't get distracted with shiny stuff - working code first - http://wiki.laptop.org/go/User:Martinlanghoff _______________________________________________ Server-devel mailing list Server-devel@lists.laptop.org http://lists.laptop.org/listinfo/server-devel