5 ms·
This is an early stage in the project but it looks like its intending to be a Chef or Puppet in python with a terraform-esque plan and apply stage.
by thinkingkong 8y ago
This is an early stage in the project but it looks like its intending to be a Chef or Puppet in python with a terraform-esque plan and apply stage.
- IfOnlyYouKnew 8y agoIsn’t Ansible a “Chef or Puppet in Python“?
- drcongo 8y agoYeah, but yaml.
- thinkingkong 8y agoAnsible is a DSL in yaml. Its written in python but youre really only exposed to the jinja templating. This is way more pure to the language.
- devonkim 8y agoVery different task and process model by default (ssh is a first-class citizen in Ansible). There’s also differences in the default mode of push or pull from a source of control (ansible pull mode is sorta similar to Salt’s minions and Chef / Puppet master servers except with a git repo typically). Chef and Puppet are much more traditional
- dsmithatx 8y agoAnsible is an imperative language while Puppet is declarative. Ansible is push mode (ssh connection) while Puppet and Chef have an agent that pulls and enforces configuration. Ansible is great for quick hacky or one time solutions like building a server. It's very newb friendly and easy to use out of the box. Puppet is great for enforcing a configuration every 30 minutes and scales across Data Centers. In my opinion Chef is more robust and is easier to use and share cookbooks on Supermarket. Ansible Galaxy isn't as great for sharing work, but I find Ansible is so easy to use I don't need anyone else's work. Once this has a pull mode (agent) it seems it will be like a very lightweight Puppet like declarative tool. Both Puppet and Chef have very mature products for serving and managing infrastructure. They can scale. This tool might be awesome years from now, but I have to use Ansible everyday at work. From 2.0 to 2.8 it has become a solid and fairly mature product. I also use Puppet and have for 10 years. It feels old and is a pain to use across 1000s of machines in an Enterprise. There is a learning curve and training to be done at all times. At my last job I used Chef and I really love it for being powerful, easy to use, and just having a great design. We currently install Puppet with Ansible once initial config is done to enforce policies. I could see this potentially replacing the Puppet side of that equation some day. I'll for sure watch this tool and experiment with it in my lab as it grows. I do love Python and Puppet is far to long an overhaul. It will be interesting to see what directions are taken as this new product matures. I do not think this is about using python instead of yaml. It is super easy to write Python modules for Ansible and use them. We have to use them for the things that aren't included in the base such as managing Infoblox etc.
- jabl 8y agoThere is ansible-pull. It's not as useful as one might initially think, as there's lots of ansible code written assuming push mode.
- orestes910 8y agoUpon looking around in the demo repo, this seems like so close to pure Python that I almost don't see the point. A Terraform for config management sounds grand, but this just seems like a collection of Python classes.
- Bombthecat 8y agoThe lesson learned from ansible probably is: if they still don't use any kind of ansible, chef or whatever. They never will. (my current job for example) but they might accept something like a "base framework"
- mpdehaan2 8y agoIt's ok if you think of it as such, the veneer over that actually isn't that deep, and that's ok. The trick is there are some norms you want to express in the language, things like handlers and such, and if you write directly at low level python every time that can be sometimes difficult to maintain a level of consistency (IMHO). Here's where it's NOT just a collection of python classes - https://sweetness.hmmz.org/2018-12-18-mitogen-opsmop.html https://sweetness.hmmz.org/2018-12-18-mitogen-opsmop.html