[ $davids.sh ] β€” david shekunts blog

πŸ‘©β€πŸ’» Paasible – I released a CLI & UI for Ansible πŸ‘©β€πŸ’»

# [ $davids.sh ] Β· message #277

πŸ‘©β€πŸ’» Paasible – I released a CLI & UI for Ansible πŸ‘©β€πŸ’»

https://github.com/Dionid/paasible

Every time I use Ansible, I want to save run logs with various metadata, so I created a utility that, when running ansible-playbook through it, saves the result locally in SQLite, and you can view and filter the history through the UI.

In the future, I’ll add a built-in IDE and the ability to run through the UI, so you can deploy it on a remote machine and conveniently work with playbooks there.

Check it out, give it a try, and don’t forget to star it 🌟, I really love stars πŸ˜‹

#ansible #devops #opensource

  • @ SAIDKHASLER Β· # 1767

    MCP, do it! You're a bit out of trend. And let the neural network analyze launch history and fix errors.

  • @ [ $davids.sh ] Β· # 1768

    I want to be a craftsman that Vice will make a documentary about: "The Last Developer Who Writes Code By Hand" – I'll gather all the eccentrics and we'll build a village in the style of the Mormons, but any AI will be forbidden and we'll sell "eco-code" made by the hands of real people.

  • @ Ivan Elfimov Β· # 1769

    Waiting for the UI launch and supporting the previous speaker. Ansible MCP is a top idea.

  • @ SAIDKHASLER Β· # 1770

    I understand, so the real John Connor IRL is "that bald Armenian psychopath with the eco-code and the farm of coders."

    P.S. For vibe-coding, surprisingly, you still need hands and a head. Those who don't have them, of course, get a sad result or simply learn.

  • @ Ivan ITK 🚫 Β· # 1771

    Why not Semaphore UI? We use it ourselves.

  • @ [ $davids.sh ] Β· # 1772

    In short: semaphore – agent-based runners and infrastructure for storing metadata for playbooks, paasible – enhancing the capabilities of the ansible-playbook console utility.

    Longer, 3 points:

    • I need the ability to save the result of running the console ansible-playbook for future searching, regardless of where and by whom the run was performed.

    For maximum simplicity, I've implemented persistence directly in the repo: the run history is stored in .json within the git repo, and upon startup, the UI is parsed into sqlite, where the necessary searches can be performed.

    This allows for versioned viewing of logs for all runs from all machines you've made on the project, and cleaning them up means deleting unnecessary json files.

    Semaphore requires much more effort to achieve the same result.

    • Semaphore doesn't solve the problem of working with playbooks on a remote machine.

    In paasible, I want to add a command that will deploy a container with the repository and the paasible UI enabled inside to a remote docker/kubernetes container, and then allow you to connect your IDE to it.

    Yes, you can do this yourself, but you can also save history yourself using something like >> (date +%s)_result.txt, but the essence of paasible is to provide these features out of the box.

    • And only after all of this will it be possible to create a central paasible server that will allow storing history in a single place, storing secrets, granting access, setting up cron jobs, using paasible containers as runners, and so on.

    But this is only if paasible gains traction and you want to compete with semaphore.

  • @ Ivan ITK 🚫 Β· # 1773

    You are mistaken, runners are an add-on, we haven't used them at all since they appeared.

  • @ Ivan ITK 🚫 Β· # 1774

    Yes, there doesn't seem to be a log search there, but everything else is there: users, launches, and their logs, all in detail.

  • @ Ivan ITK 🚫 Β· # 1775

    DevPods?)

  • @ Ivan ITK 🚫 Β· # 1776

    All of this is already in Semaphore. It feels like you haven't touched it in a very long time; it's actively developing and has tons of features, even recent ones added in the last six months.

  • @ Ivan ITK 🚫 Β· # 1777

    All my IoT work is built through it. We roll out updates using regular playbooks within Semaphore from GitLab, using Ansible secrets and Ansible environments. Semaphore on top provides user-based access control, activity logging, project separation with quick switching and access control per project, and logs for each run. Yes, I even sometimes set diff + dry run options with checkboxes right there and run it to debug.

  • @ [ $davids.sh ] Β· # 1779

    Then the main question is: what needs to be done in Semaphore (from scratch) to run a YAML and then see the execution results?

    In Paasible, it would be:

    paasible ansible-playbook playbook.yaml -i ./inventory.yaml paasible serve

    Then you can edit the YAML and run these commands again to restart the play.

    If I understand correctly, in Semaphore you would have to (1) unpack the container, (2) connect the repo, (3) push playbooks to it, (4) configure the playbook, (5) add inventory, (6) run the command.

    And with this, (1) the execution data will be stored only on the machine where the container is running (meaning you need to run a version on a remote machine for everyone), (2) each change in YAML will require a push to the repository so that it updates in Semaphore and this playbook can be run.

    Do I understand the flow correctly?

  • @ [ $davids.sh ] Β· # 1780

    Okay

    Just to make (1) container unfolding, (2) repo swapping, (3) UI unfolding automated

  • @ [ $davids.sh ] Β· # 1781

    So I'm saying:

    | But that's only if paasible comes along and wants to compete with semaphore

  • @ Ivan ITK 🚫 Β· # 1784

    You have some other use case, right. Semaphore is primarily a centralized control panel.

    It seems to me that your use case is more like the responsibility of a runner in GitLab CI, rather than Semaphore.

  • @ [ $davids.sh ] Β· # 1785

    Yes, more like that

  • @ Maxim ITK Manylov Β· # 1789

    Do you really write code by hand and don't use AI? Not even for suggestions?

  • @ [ $davids.sh ] Β· # 1790

    I didn't take a liking to Cursor, one of us is too dumb for us to be friends.

    Copilot is on constantly, but I've been without it for a month now and I'm not complaining yet. A well-configured autocomplete and a chat with ChatGPT solves everything.

    I'll resume it, but it turns out I'm not that eager.

  • @ Ivan ITK 🚫 Β· # 1791

    Aider is the best thing I've really gotten into so far.

  • @ Artur G Β· # 1792

    I'm already in this village. 😁

  • @ [ $davids.sh ] Β· # 1793

    What exactly is it that hooks you?

  • @ Ivan ITK 🚫 Β· # 1794

    Ease of use with a good agent system and code indexing, no IDE binding, can run Docker anywhere, a huge selection of models without additional proxy routers. The principle of operation is the same as with all others: you ask in read-only, edit a diff patch with the model or use multi-agent mode of an architect with 2 models, one reasons, the other writes code.