Announcement: community.openwrt

Community OpenWRT

It is with great joy that I announce to you the first ever release of the collection, community.openwrt 0.1.0.

To install it, you can run the usual:

ansible-galaxy collection install community.openwrt

This collection is largely adapted from the Ansible role gekmihesg.openwrt, and its main feature is that is not a Python-based collection, but rather based on plain shell-scripts, as many OpenWrt devices do not have enough memory hold a Python install. We want to acknowledge the work performed by Markus Weippert and contributors maintaining that Ansible role for many years.

The collection is far from being production-ready but so far it has been performing just like (or similar enough) to the Ansible role, but we would like to invite the community to take a look, add tests, improve the documentation, to contribute by and large. Those who are used to gekmihesg.openwrt, there are adjustments to be made, but there is no documentation yet on how to use it. It is in our radar to produce that.

Until we are ready to release a 1.0.0 version the collection is not considered to be stable yet and is subject to breaking changes, sometimes without notices. Again, we appreciate collaborations, but keep in mind this is not stable just yet. Watch this space.

6 Likes

Hi everyone,

community.openwrt 0.2.0 was released last evening (Middle-Earth timezone).

One of the major issues with this code is that, being shell-based rather Python, it is trickier to “import” the supporting machinery, needed for example to parse and produce JSON content. The gekmihesg.openwrt role was performing dark magic overloading internal methods of Ansible’s action plugin code, whilst version 0.1.0 of this collection was brute-forcibly templating the modules’ code into the wrapper.sh file. This release brings a much more elegant solution: the wrapper code became a module in itself, and all the regular modules use a standard action plugin that redirects their execution to the wrapper, passing the target (shell) module as parameter.

Other than that, the modules’ docs have received a good dose of attention, and are starting to look fairly good. Still some room for improvement, of course, but we’re getting there.

Anyone interested in collaborating, by all means take a look at the collection’s repo:

Reviews, issues and PRs are more than welcome!

1 Like