I have access to a small linux pool of around 20 computers. I'd like to come up with a simple and easy to configure solution that allows me to
- deploy the same configuration to new computers
- distribute software installs to all computers
- keep all computers in sync when it comes to installed software & configurations
I'm aware of Ubuntu's Landscape, but this solution is too expensive for me.
Right now I'm deploying new installs by hand and I manage the computers with cssh but this solution doesn't seem practical in the long run.
Deploying the same install onto new machines could probably be achieved by using PXE
but how about the keeping systems up to date and properly configured
part? Are there any easy to configure & use solutions out there? I'm aware of Puppet which seems too overblown to me, but maybe I'm wrong.
I'd be happy to hear from you about your solutions!
You might want to take a look at Ansible. You could use it as an orchestration tool, so you'd be able to run:
Or something similar, having first defined "webservers"
Another option is Salt, but I've used Salt in the past and found it to be quite unstable at times.
Just spend some time and learn puppet master. After you get used to the main concepts it's a beauty to work and in the long run will make your life much easier.
If you have only 20 computers then you can just setup authentication using
/root/.ssh/authorized_keys
and when you need to make a change on all of them just use a script on your controlling computer, for example:The problem is that all computers have to be running. You can use for example Wake on Lan to start them.