Hello lists, As many of you may have already guessed from my subject line and To field, this email is about some ideas I've been thinking about what it would take to bring Cobbler and Func up to a point where they could completely replace Puppet. I've come across some hurdles in the planning stages, and since I'm a sysadmin whose hobby is Python programming, I'm hoping you guys can help me flesh out the ideas some more. My main reason for wanting to replace Puppet is that between Func and Cobbler, they already can replicate between 70-80% of Puppet's features. They also do so in a manner that I believe is more usable. As an added bonus they contain features that Puppet will never be able to incorporate, or at least not easily (yay PXE booting and Func-transmit!). Plus a project like this definitely strains my current skills and knowledge to the brink, which is how I learn best. Just one note before going further: it is not my intention to remake Puppet where the only difference is that this is written in Python (ie- transcribe the Ruby code into equivalent Python code). Rather, my intention is to create something that builds on top what already exists in Python (namely Cobbler and Func) that fills the gaps that only Puppet can fill at this time (favorite uses of which at this time are keeping the root password and authorized SSH keys up to date across all Linux servers). As I see it, the important tools already present that are required to make this happen are distributed between Cobbler, Func, and Certmaster like so: Certmaster: -Authorization (by this I mean managing the signing and clearing out of certs) -Encryption/Decryption -Key store for crypto Func: -Secure communication to all servers from central point -Secure communication between peer servers -Secure communication routes made available to third party applications (specifically I mean func-transmit here) -Access to client servers and all their information Cobbler: -Repository of server profile data -Repository of server configuration data -Template engine. What's missing in order to make replacing Puppet a reality: -Cobbler repository data needs to be decentralized and made available for use. -Same goes for the template engine. -SCM like git in order to track changes to configuration files. -Client servers need to ask the server if there have been any changes to their configs rather than rely on being told when there are changes. -Communication needs not only to be secure, but also to be reliable and guaranteed. The major hurdles I see, and am getting stuck on, are the following: -Making repository data and template engine open. I'm not sure whether the better way of achieving this is via decoupling the templating engine and data repositories from Cobbler, and forking them off into a seperate project (like Certmaster), or if a reworked and expanded API would be better. Or if any change is even needed at all! -Git-like versioning of the template files. Not even sure where to begin. The ability to go back and forward through the different revisions on the fly without having to be a master at git-fu is important. This may be a job for Couchdb with its btree backend, but there are too many things I don't know to be able to make an informed decision either way. The final two are the relatively easy ones from what I can tell. I know AMQP was discussed about being added to func as a transmission method, and that would certainly solve the guaranteed requirement. The final requirement is solved with a timer on the client side that queries the master func server every X minutes. Thoughts? Comments? Suggestions? Is there any interest in either using or working on something like this? Dominic _______________________________________________ Func-list mailing list Func-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/func-list