App-FuguVM
view release on metacpan or search on metacpan
man/fuguvm/fuguvm.1 view on Meta::CPAN
.Cm start
run the binary with
.Fl Fl version
and compare component by component,
over the components that the directive names:
.Li 9.0
accepts
.Li 9.0.4
and refuses
.Li 9.1.0 .
A mismatch,
an absent binary,
and output with no version in it,
each cause an exit with code 3.
Without the directive,
.Nm
checks nothing and does not run the binary.
.Nm
reads the directive from the project
.Pa .fuguvmrc
or the global
.Pa ~/.fuguvmrc ,
with the project first.
.Pp
A line that the configuration grammar does not accept is an error that
names the file and the line, and
.Nm
exits with 3.
The parser never skips a line it did not understand: a typo that a
parser ignores is a setting that silently does not apply, and the
operator finds out weeks later from the behavior of the VM.
.Pp
.Ar verify Cm yes | no
.Pq default Cm yes
switches the mirror verification on or off.
With
.Cm yes ,
.Nm
verifies each download under the release key before the file enters
the cache,
and the guest installer verifies its own sets.
.Xr signify 1
must then exist on the host,
and a run without it fails with a diagnostic that names the command
and the package.
The directive can be in a
.Ar vm
block,
in the project
.Pa .fuguvmrc ,
or in the global
.Pa ~/.fuguvmrc ,
with that precedence.
.Pp
.Ar signify_dir
names the directory of the signify public keys,
before
.Pa /etc/signify/
and the shipped keys.
The value is a path:
a leading tilde expands,
and a relative path resolves against the project root.
A value that is not a directory is a configuration error.
.Pp
.Ar distfile_cache
sets the size cap of the distfile tree,
as a byte count or a number with a
.Cm K ,
.Cm M
or
.Cm G
suffix
.Pq 1024-based, either letter case .
The default is 0,
which turns the distfile cache off.
The directive is a project or global setting:
the distfile tree is one tree under
.Ar cache_dir ,
and each guest of a project shares it,
so a per-guest cap would have no meaning.
See
.Sx MIRROR CACHE .
.Pp
A value for
.Ar image_cache
or
.Ar verify
that is neither yes nor no,
and a
.Ar distfile_cache
value that is not a size,
each give a warning and fall back to the default.
An unrecognized spelling must not silently mean the opposite.
.Pp
.Ar autoinstall
names an
.Xr autoinstall 8
response file,
.Ar base_disk
names an existing full-disk image
.Pq qcow2 or raw ,
and
.Ar root_password_file
names a file whose first line is the root password of the image.
Each value is a path:
a leading tilde expands,
and a relative path resolves against the project root.
The file must be readable when the configuration loads.
The response file is an artifact of the operator,
and
.Nm
validates no answer in it:
.Xr autoinstall 8
owns that grammar.
Outside the default install,
.Ar ssh_pubkey
needs
.Ar root_password_file ,
so
.Nm
can install the key over a password login.
A guest with no
.Ar ssh_pubkey
must trust the key of the operator already.
.Sh EXIT STATUS
.Nm
exits with one of these values:
.Pp
.Bl -tag -width Ds -offset indent -compact
.It 0
Success.
.It 1
General error.
An
.Cm image export
whose target exists,
whose parent directory is absent,
or whose guest has no installed disk,
and a
.Ar base_disk
file that is absent at a cache miss,
also give this code.
So do a failed download,
a failed signature,
a failed digest,
a
.Cm mirror verify
that found one bad file,
and
.Ar verify yes
on a host with no
.Xr signify 1 .
.It 2
Invalid arguments.
An unknown
.Cm status
key,
an
.Cm image
call with no action,
no path,
or an unknown
.Fl Fl format
value,
and a
.Cm mirror
( run in 1.716 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )