Centrally managed Linuxes

I’m looking for a way to centrally manage multiple linux desktops and possibly servers.
I know that there are ZENworks and some other expensive solutions available but those are out of the question for me.

The idea is to be able do software management and configurations without going through all machines one by one. Ideally solution should not be tied to one distribution, but that is not deal breaker.

Anyone know any great solution for this?

Have a look at configuration management software like puppet and older solutions like cfengine.

Hey thanks these looks good!