You have to have quite large scale of requirements to decide to deploy
and use such a system. And you would not replace it with ease. There are
several already designed systems, like cfengine, bcfg2, automateit,
puppet (whihc is used by func), etc. But usually you pick such a system
only once and then cope with its limitations for a long time before you
decide to try something next.