examples/host1 | ||
man | ||
boxctl.sh | ||
LICENSE | ||
Makefile | ||
README.md | ||
smart_users.diff |
BOXCTL(8) - System Manager's Manual
NAME
boxctl - tool to manage remote OpenBSD machines
SYNOPSIS
boxctl
**-cfmnsv**]
\[**-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:
**-c**
> Copy managed files from server into local directory.
**-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.7 - September 23, 2019