<div dir="ltr"><div>/etc in git + Shell script + Ansible<br></div><div><br></div><div>I wrote a shell script that drops lock files in /etc/setup when that function has successfully run without error.</div><div>If the lock file exists (test -f "/etc/setup/${lockname}"), the function doesn't run again whenever I re-run the shell script.</div><div>I include /etc/setup/ and /etc/bin/ in /etc/sysupgrade.conf.</div><div><br></div><div>I haven't yet hooked post-upgrade somehow so that the setup shell script runs automatically after upgrading OpenWRT firmware.</div><div>I could probably check /etc/openwrt_release and /etc/openwrt_version to determine whether the version has changed.<br></div><div><a href="https://openwrt.org/docs/techref/sysupgrade">https://openwrt.org/docs/techref/sysupgrade</a></div><div><br></div><div><a href="https://github.com/gekmihesg/ansible-openwrt">https://github.com/gekmihesg/ansible-openwrt</a></div><div>> Manage OpenWRT and derivatives with Ansible but without Python <br></div><div><br></div><div>This runs an OpenWRT docker container with an interactive shell that IDK how to kill without killing the PID or various incantations of Ctrl-C/Ctrl-D/Ctrl-Z:<br></div><div><br></div><div>docker image pull openwrtorg/rootfs<br></div><div>docker run --rm -it --name=openwrt1 -h hostname --cap-add NET_ADMIN -v $(readlink -e ./setup_openwrt.sh):/setup_openwrt.sh:ro -v $(readlink -e ./entrypoint.sh):/entrypoint.sh:ro openwrtorg/rootfs</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 8, 2020 at 5:08 PM Paul Spooren <<a href="mailto:mail@aparcar.org">mail@aparcar.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all,<br>
<br>
I was wondering if there are some best practices for configuration<br>
management of OpenWrt devices. I understand that it is fairly easy to<br>
get/restore a backup of the etc/config folder, but though maybe there<br>
are some smarter ways.<br>
<br>
Ideally a local state (e.g. git repository) would deploy multiple<br>
devices and automatically update them via a command (or even cron).<br>
<br>
Other projects came up with solutions which seem to heavy for common<br>
WiFi routers. Ansible[0] is great and all, however requires plenty of<br>
Python to work conveniently. Then cloud-init[1] is Python as well, I<br>
think even heavier on the client side than Ansible and also doesn't<br>
seem to be the right use case.<br>
<br>
Some time ago I came up with a MAC based init system[2] but that's not<br>
really to keep things up to date.<br>
<br>
Last thing I know of is the approach to convert folders into opkg<br>
install-able packages[3], so whenever there is a new configuration all<br>
pre-configured routers would install it via opkg. However this would<br>
require an opkg cron on client device and building the config-packages<br>
appear to be quite some overhead. On the other side it handles<br>
authentication via usign keys.<br>
<br>
Anyway, please recommend me a better way which I'm not aware of!<br>
<br>
Best,<br>
Paul<br>
<br>
[0]: <a href="https://www.ansible.com/" rel="noreferrer" target="_blank">https://www.ansible.com/</a><br>
[1]: <a href="https://cloud-init.io/" rel="noreferrer" target="_blank">https://cloud-init.io/</a><br>
[2]: <a href="https://github.com/openwrt/packages/pull/6071" rel="noreferrer" target="_blank">https://github.com/openwrt/packages/pull/6071</a><br>
[3]: <a href="https://github.com/libremesh/network-profiles-builder" rel="noreferrer" target="_blank">https://github.com/libremesh/network-profiles-builder</a><br>
<br>
<br>
_______________________________________________<br>
openwrt-devel mailing list<br>
<a href="mailto:openwrt-devel@lists.openwrt.org" target="_blank">openwrt-devel@lists.openwrt.org</a><br>
<a href="https://lists.openwrt.org/mailman/listinfo/openwrt-devel" rel="noreferrer" target="_blank">https://lists.openwrt.org/mailman/listinfo/openwrt-devel</a><br>
</blockquote></div>