4 ms·
I think I tried to shy away from specifically being "Ansible does this bad so pyinfra does this" and instead focus on the features that differentiate like "Inst
by Fizzadar 2y ago
I think I tried to shy away from specifically being "Ansible does this bad so pyinfra does this" and instead focus on the features that differentiate like "Instant debugging with realtime stdin/stdout/stderr output (-vvv).". But it seems like that isn't enough and the landing page needs to be more explicit in comparison. Ty for the feedback!
- erikbye 2y agoIs performance better than Ansible? I have used Ansible extensively and find it excruciatingly slow.
- helsinki 2y agoExcruciatingly slow is an understatement :)
- surfingdino 2y agoWhy being slow is a bad thing? Ansible gives me a legitimate excuse to have proper lunch. ;-)
- verdverm 2y agoYou're supposed to be writing compilers during that time
- Fizzadar 2y agoYes! https://docs.pyinfra.com/en/next/performance.html https://docs.pyinfra.com/en/next/performance.html
- mxuribe 2y agoHi @Fizzadar and congrats on making this and getting it out the door; kudos! As you craft your "Why this and not Ansible" content, you might actually state clearly what you already noted on the Performance page, namely: "One of the reasons pyinfra was started was performance of agent-less tools at the time." If I read that, it'd instantly make me want to stick around and read some more, play with pyinfra, etc. BTW, i will be playing with it anyway, but just wanted to point out that you likely won;t need to start from scratch for copy (on a comparison or answering "Why this and not Ansible" content). Cheers!
- gh02t 2y agoI applaud trying to be positive and focus on "this is what we do well," but yeah at least some explicit comparison would help. The copy right now is kind of assuming the reader already knows Ansible to compare against as a baseline. Which is probably fair for most people who find your project, but people who find your project are also probably not happy with Ansible and want to know if this addresses their pain points immediately. Is very interesting though, I think I'm gonna try it myself.
- Anarch157a 2y agoI like Ansible, but that doesn't mean thera are no pain points. One of them is handling "if-this-then-that-else-that". Being purely declarative, Ansible is horrible at that. Pyinfra can be used in imperative mode, am I right? This would make the use of if-else a breeze, which would be a really good reason for me to to switch.
- tryauuum 2y agoAnsible is declarative? In puppet and saltstack you can declare that a folder is empty and declare a specific file in this folder. The system's smart enough to delete all the files except the one. To achieve such feat in ansible is hard. Easiest way is to have two tasks, one deletes everything and second recreates your file. Doesn't feel very declarative Unrelated thing, they don't even try to be declarative in ansible E.g you can have a file with state "touch". It not a state if it updates each playbook run!
- emmelaich 2y agorsync covers this and should ne used instead of a lot of Ansible tasks
- Anarch157a 2y agoYou're confusing declarative with idempotent. Ansible is both, it won't change anything if the state is already what you declared. The nitpicked case you chose, you want the file to have the latest timestamp, this is a valid state to declare.
- verdverm 2y agoThe shell task breaks the declarative nature a bit, along with registering task results and then writing conditional whens based on them. Interpolating values based on the registered results does too imho
- aflukasz 2y agoPlus, what your are declaring is often times not the state you desire but... action you want to take. Say you use `apt.name: [pkg1, pkg2]`, run it, then remove `pkg2` from the list. Running this again won't remove `pkg2` from your system. So it's declarative, but not necessarily on the optimal level all the times.
- ShakataGaNai 2y agoThat would be appreciated. I saw the homepage and my first thought was "Ansible is python. How are these things different?" Obviously pure python vs yaml is one thing. But beyond that it's not clear. Perhaps are specific use cases in your mind where one or the other is a better fit, and that would be helpful as well.