qbit / boxctl

A host management tool built entirely from tools in OpenBSD's base install

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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>.

OpenBSD 6.7 - September 23, 2019

About

A host management tool built entirely from tools in OpenBSD's base install

License:ISC License


Languages

Language:Shell 92.3%Language:Makefile 7.7%