This can all be in puppet or chef, I can help with this sometime soon.