Skip Navigation

Sparky - simple and efficient alternative to Ansible - Alexey Melezhik

dev.to Sparky - simple and efficient alternative to Ansible

How to manage hundreds of hosts with Sparky

Sparky - simple and efficient alternative to Ansible
5
5 comments
  • TL;DR: the project is nice and welcome, most of development reasons seem straw man arguments ("I wanted to do it" would have been better).

    Detailed comment (Wall of text)

    I have some counter-arguments to the reasons of OP frustration with Ansible:

    YAML based declarative DSL really stinks on complex tasks as it lacks the flexibility that imperative languages have.

    Although this point can be agreeable, it doesn't provide an example of what amount of flexibility someone (the author) could need. So this make me think "maybe OP wanted to use Ansible for some problem that Ansible cannot resolve". Also, Ansible supports Jinja templates, which add expressiveness to it.

    YAML is not even a programming language, and you gonna pay the price very soon.

    This is goes with the previous point, and this is a subjective argument too: if YAML is enough for a task, there is no price to pay, at any time; if YAML is not enough, there has been a miscalculation during the tool choice.

    To keep ansible code clean and simple, extra efforts are required, one need to refactor out all the complexity from YAML to python modules and this feels like "why I even start using YAML DSL"?

    I agree that, without a lot of experience (myself included), Ansible code is hard to maintain. But, in my experience, most of the complexity can be abstracted by using templates. If there is the need of something more complex, maybe a script fits more the job.

    Ansible reports are frustrating as I always need to add these debug tasks to show real STDOUT/STDERR emitted from commands, where it should just work out of the box.

    Absolutely agree. A simpler way to debug or print stdout/stderr (such as a task-level option) would be welcome.

    Ansible ties me to the idea of "running on a host," where sometimes I need to run tasks not tied to hosts, yes, you can still use "ansible_connection=local" but this feels awkward.

    I guess this is subjective, but IMO if it feels awkward it may not be the best way to do (still, there are some cases where it is the only way to follow).

    The Web UI is nice and clean, I'd like to have one also in Ansible. This is surely a +1 for Sparky.

    As for the example, from someone that does not know Raku (but who is a developer, i.e. me), it does not seem much simpler than an Ansible playbook.