rset(1) : Remote Script Execution Tool

source | download 0.2

Formulas

Server Configuration
  Let's Encrypt

Web Services :
  MediaWiki

Cloud Automation
  Digital Ocean | Amazon Web Services

Overview

rset(1) matches a host pattern in a routes file and sequentially executes script fragments on remote hosts

# routes.pln
www1:
    nginx.pln
www2:
    nginx.pln
    wordpress.pln

execute_with=sudo
interpreter=/bin/ksh

pln(5) is a tab-indented format somewhat like Makefiles for embedding scripting languages and executed in sequentially

# nginx.pln
interpreter=/bin/ksh -x

packages:
    pkg_add -I ruby
    ln -sf /usr/local/bin/{ruby25,ruby}
    ln -sf /usr/local/bin/{irb25,irb}

mail:
    ./rinstall common/smtpd_relay.conf /etc/mail/smtpd.conf \
        && rcctl restart smtpd

username=www

/var/www/htdocs/pub:
    mkdir -p $LABEL

rinstall(1) is a utility for installing files on the remote machine, and is automatically copied to the directory _rutils found in your current working directory. This entire directory is made available on the remote host at the temporary directory found using the environment variable $LABEL.

Targets are matched using regular expressions, hence this will run on both machines

rset www

Last updated on August 17, 2018
Send questions or comments to ericshane@eradman.com