4 ms·
I guess I haven't used Ansible long enough to know such pain points. Would you elaborate with some examples?
by usrme 6y ago
I guess I haven't used Ansible long enough to know such pain points. Would you elaborate with some examples?
- peterwwillis 6y agoThis is a bit like asking what the Marquis de Sade did that was so painful. I don't even know where to begin explaining how frustrating Ansible is. Over time they've compounded one bad design decision on top of another, while never adding any actually useful functionality to be able to troubleshoot or iterate on the many random failures. They also don't provide guidance on how "if you use feature X, features a, b, c, d, and e will not work correctly". Finding a working example of core functionality, like an AWS inventory plugin, requires you to dig through all of the code and scour the internet and experiment for a day before you have a simple working configuration. The more features you use, the more fragile and shitty it becomes, to the point that nobody wants to actually change any roles or playbooks because deployments might stop working and it'll take you two days to figure out how to make them work again in Ansible's bass-ackwards design. And of course, it's Python, so you have to teach all your users how to use virtualenvs, freeze deps, and run it with Docker, or you'll constantly hear "it didn't run correctly for me".
- godtoldmetodoit 6y agoI've been neck deep in Ansible for the past couple of months, and boy, I am not a fan. Documentation is middling at best imo and it just feels hacked together.
- pampa 6y agoIt is easy to pick up and do easy tasks. Like installing a package on ubuntu and setup ufw. Then you throw in a few centos hosts and have to write if-else in yaml. Then u try to provision docker and end up with more if-else blocks to install the required python packages. Then you get to the part where you want to provision a database with presistent storage inside a docker container and just give up.
- isbvhodnvemrwvn 6y agoThe two things that came into my mind when I first used Ansible was "bash" and "hudson/jenkins". It seems like a tool which was written by an ops person (as in hacked together) for ops people (who don't mind stuff being hacked together), specifically for replacing manually distributed cryptic bash files. It's an improvement over that, for sure, but that's it.
- lixtra 6y ago> run it with Docker Isn’t the point of Docker that not everyone has to know the virtual envs, etc?
- peterwwillis 6y agoYes, if you freeze deps you can just install to the system paths in a Docker container. But most people who I've distributed Dockerized ansible git repos to don't read the README and don't try to run it in Docker, so they flail around trying to get it running without a venv or anything, until I finally convince them to just use the container (they're not familiar with containers either so it's almost as much of a slog). I hate technology.
- 1337shadow 6y agoFor example, executing a long command: you will not see any output until the command exits.
- isbvhodnvemrwvn 6y agoAnd it's a fundamental flaw in the architecture, it can't be easily fixed.
- dec0dedab0de 6y agoAnsible error messages have gotten better, but there are still plenty of times where it will take a configuration error such as a missing module argument and report on it as a syntax error. And then when you get those errors you need to understand what the object is and now you're running the debug on a ton of variables, some of which you first need to set facts on, then others you don't know what are available. IMO the biggest problem with Ansible is that it feels like it was designed with a really good idea in mind, and then extended and modified by a bunch of different teams who had their own ideas. Which is fine if you've been paying attention, but explaining it all to someone new can be overwhelming.
- deleted 6y ago[deleted]