Go to file
2019-10-23 17:11:19 -06:00
examples/host1 Only restart services when the corresponding file has been modified recently 2019-10-21 21:07:00 -06:00
man Update packages when run in maint mode 2019-10-21 21:29:51 -06:00
boxctl.sh install packages before we do anything else 2019-10-23 17:11:19 -06:00
LICENSE initial bits for boxctl 2019-09-23 18:13:18 -06:00
Makefile initial bits for boxctl 2019-09-23 18:13:18 -06:00
README.md Update packages when run in maint mode 2019-10-21 21:29:51 -06:00

BOXCTL(8) - System Manager's Manual

NAME

boxctl - tool to manage remote OpenBSD machines

SYNOPSIS

boxctl

**-fmnsv**]
\[**-h** *host*]
\[**-u** *user*]

# DESCRIPTION

**boxctl**
is a
ksh(1)
script designed to help manage
OpenBSD
machines.
It uses only tools contained in
OpenBSD
base.

The options are as follows:

**-h** *host*

> Remote host to be managed.

**-u** *user*

> User to connect to
> *host*
> with.
> Defaults to
> *root*.

**-f**

> Force installation of all packages and restarting of all services
> This skips the 'intelligent' diff and service restart mode.

**-m**

> Run maintenance tasks.
> This includes deleting unused dependencies using
> pkg\_delete(1).
> And installing / updating packages and firmware using
> fw\_update(1)
> and
> pkg\_add(1).

**-n**

> Dry run.
> This will only print the commands that will be run.

**-s**

> Force
> pkg\_add(1)
> to run with '-Dsnap'.
> This is useful when
> OpenBSD
> is in -beta.

**-v**

> Increase verbosity.
> More v's can be specified to increase information output.
> The number of v's are passed to tools used by
> **boxctl**.

# FILES

*$CWD/files*

> Is a ":" delimited index of source file, owner, group, mode and destination.
> Each source will be copied to the specified destination, then chown/chmod will
> be run with the values specified.
> If this file does not exist, no files are copied.

*$CWD/services*

> An optional file that contains a list of services to enable on the remote
> host.
> Each line in the file should contain "name:path".
> Where "name" is the name of a service (httpd for example) and "path" is the
> full path to a file that when modified, should trigger a restart of the named
> service.
> For example, the entry "httpd:/etc/httpd.conf" would restart
> httpd(8)
> if the mtime on "/etc/httpd.conf" is less than 100 seconds from the current
> time.

*$CWD/groups*

> A ":" delimited list of groups to be added to the remote host.
> Entries should follow a "group:gid" pattern.

*$CWD/users*

> A ":" delimited list of users to be added to the remote host.
> Entries should follow the pattern: "user:uid:gid:comment:home:shell:password".
> The "comment" filed should not contain white space for the time being.
> "password" is expected to be an encrypted string produced via
> encrypt(1).

*$CWD/packages*

> When this file exists,
> **boxctl**
> will install the packages contained therewithin on the remote host.
> A list is cached on the remote host under /etc/packages.
> This list (if it exists) will be compared using
> diff(1)
> and only missing packages will be installed.
> Package names should be listed by their fuzzy names.
> See
> pkg\_info(1)
> for more information on fuzzy names.

*$CWD/commands*

> An optional file that contains a script that will be executed at the end of
> the run.

# SEE ALSO

chmod(1),
diff(1),
encrypt(1),
fw\_update(1),
ksh(1),
openrsync(1),
pkg\_add(1),
pkg\_delete(1),
pkg\_info(1),
scp(1),
ssh(1),
chown(8),
rcctl(8)

# HISTORY

The first version of
**boxctl**
was released in September of 2019.

# AUTHORS

**boxctl**
was written by
Aaron Bieber <[aaron@bolddaemon.com](mailto:aaron@bolddaemon.com)>.

OpenBSD 6.6 - September 23, 2019