(R)?ex the friendly automation framework

News

2023-08-05
Rex-1.14.3

Rex-1.14.3 is now available on CPAN. It contains bug fixes for local package installation, command existence checks, and Git tests.

2023-05-05
Rex-1.14.2

The Rex-1.14.2 release is now available on CPAN. It contains bug fixes for running local commands on Windows, cloning git repositories, and test suite fixes for the upcoming perl-5.38.0 release.

2023-03-17
Call for papers TPRC 2023

Dean Hamstead from the The Perl and Raku Foundation Marketing Committee has sent an invitation to present about Rex at TPRC 2023. I’m posting it here to increase visibility.

2023-03-05
Rex-1.14.1

The Rex-1.14.1 release is now available on CPAN. It contains bug fixes and documentation updates.

2023-02-05
Rex-1.14.0

The Rex-1.14.0 release is now available on CPAN. It contains improved Rexfile loading, documentation updates, and bumps the minimum required Perl version to 5.12.5.

Events

2021-03-08
Learning automation using Rex

Ferenc Erki (FErki) will be the guest of Gábor Szabó on the next Code Maven live stream to learn about automation using Rex. Register for the free event via Code Maven or Meetup, and join the discussion!

2020-03-05
Unexpected use cases with Rex

Unexpected use cases with Rex at the 22nd German Perl/Raku Workshop 2020 in Erlangen by Ferenc Erki (FErki).

2019-11-09
Rex & Friends

Rex & Friends talk at the Barcelona Perl & Friends 2019 by Ferenc Erki (FErki).

» Home » Docs » Guides » Manage OpenWrt

Manage OpenWrt

OpenWrt is a Linux distribution for embedded devices and it is primarily aimed for and used on routers. This means that every component is optimized for size to fit into the limited resource constraints of these devices. As a result some things are working a bit differently than on a full-blown desktop or server distribution. This guide tries to help you getting started with using Rex to manage OpenWrt boxes.

Overview

What's working?

Please see the official compatibility page. You may also want to check the current project weather on build.rexify.org.

Known limitations

Requirements

Generally you'll need the following packages on your OpenWrt box on top of a vanilla install:

Optional packages (only for specific Rex functions):

Details

SFTP server

By default OpenWrt doesn't provide an SFTP server. As Rex does lots of lower level operations via SFTP (is_dir(), is_file(), ...), the first package you should install on your box is either openssh-sftp-server or gesftpserver.

A massively subjective comparison of these two may help to make your decision:

openssh-sftp-server

It can be set up with the following commands:

opkg update
opkg install openssh-sftp-server
gesftpserver

It can be set up with the following commands:

opkg update
opkg install gesftpserver
mkdir /usr/libexec
ln -s /usr/bin/gesftpserver /usr/libexec/sftp-server

If you want to automate the set up of the chosen SFTP server on a fresh OpenWrt installation, just put the according steps into run calls in a Rex task. The bottom line is to don't try to use the built-in mkdir and symlink functions at this point as they are broken before you have an SFTP server in place. You can find out more about gesftpserver and a comparison of different SFTP implementations/versions on their website.

Perl

You'll need to install the following packages:

rsync

Merely needed by sync_up functionality.

shadow-*

OpenWrt doesn't provide traditional user and group management commands by default as these procedures are rarely needed in the majority of the targeted use cases. However, if you really need to do these type of stuff on your router, you're in luck, as you can easily install these packages from the official repository:

Proudly powered by Perl and built with Statocles

GitHub repository and discussions / Chat on Matrix and IRC / Mailing list on Google Groups (retired: rex-users@freelists)

MetaCPAN / Twitter / StackShare / Server Fault   -.ô.-   Disclaimer