Blame docs/osbuild.1.rst

Packit Service 863627
=======
Packit Service 863627
osbuild
Packit Service 863627
=======
Packit Service 863627
Packit Service 863627
----------------------------------------------
Packit Service 863627
Build-Pipelines for Operating System Artifacts
Packit Service 863627
----------------------------------------------
Packit Service 863627
Packit Service 863627
:Manual section: 1
Packit Service 863627
:Manual group: User Commands
Packit Service 863627
Packit Service 863627
SYNOPSIS
Packit Service 863627
========
Packit Service 863627
Packit Service 863627
| ``osbuild`` [ OPTIONS ] PIPELINE
Packit Service 863627
| ``osbuild`` [ OPTIONS ] -
Packit Service 863627
| ``osbuild`` ``--help``
Packit Service 863627
Packit Service 863627
DESCRIPTION
Packit Service 863627
===========
Packit Service 863627
Packit Service 863627
**osbuild** is a build-system for operating system artifacts. It takes a
Packit Service 863627
pipeline description as input and produces file-system trees, images, or other
Packit Service 863627
artifacts as output. Its pipeline description gives comprehensive control over
Packit Service 863627
the individual steps to execute as part of a pipeline. **osbuild** provides
Packit Service 863627
isolation from the host system as well as caching capabilities, and thus
Packit Service 863627
ensures that pipeline builds will be deterministic and efficient.
Packit Service 863627
Packit Service 863627
OPTIONS
Packit Service 863627
=======
Packit Service 863627
Packit Service 863627
**osbuild** reads the pipeline description from the file passed on the
Packit Service 863627
command-line. To make **osbuild** read the pipeline description from standard
Packit Service 863627
input, pass ``-``.
Packit Service 863627
Packit Service 863627
The following command-line options are supported. If an option is passed, which
Packit Service 863627
is not listed here, **osbuild** will deny startup and exit with an error.
Packit Service 863627
Packit Service 863627
-h, --help                      print usage information and exit immediately
Packit Service 863627
--store=DIR                     directory where intermediary file system trees
Packit Service 863627
                                are stored
Packit Service 863627
--sources=PATH                  json file containing a dictionary of source
Packit Service 863627
                                configuration
Packit Service 863627
--secrets=PATH                  json file containing a dictionary of secrets
Packit Service 863627
                                that are passed to sources
Packit Service 863627
-l DIR, --libdir=DIR            directory containing stages, assemblers, and
Packit Service 863627
                                the osbuild library
Packit Service 863627
--checkpoint=CHECKPOINT         stage to commit to the object store during
Packit Service 863627
                                build (can be passed multiple times)
Packit Service 863627
--json                          output results in JSON format
Packit Service 863627
--output-directory=DIR          directory where result objects are stored
Packit Service 863627
Packit Service 863627
MANIFEST
Packit Service 863627
========
Packit Service 863627
Packit Service 863627
The input to **osbuild** is a description of the pipeline to execute, as well
Packit Service 863627
as required parameters to each pipeline stage. This data must be *JSON*
Packit Service 863627
encoded. It is read from the file specified on the command-line, or, if ``-``
Packit Service 863627
is passed, from standard input.
Packit Service 863627
Packit Service 863627
The format of the manifest is described in ``osbuild-manifest``\(5). The formal
Packit Service 863627
schema of the manifest is available online as the OSBuild JSON Schema [#]_.
Packit Service 863627
Packit Service 863627
EXAMPLES
Packit Service 863627
========
Packit Service 863627
Packit Service 863627
The following sub-sections contain examples on running **osbuild**. Generally,
Packit Service 863627
**osbuild** must be run with superuser privileges, since this is required to
Packit Service 863627
create file-system images.
Packit Service 863627
Packit Service 863627
Example 1: Run an empty pipeline
Packit Service 863627
--------------------------------
Packit Service 863627
Packit Service 863627
To verify your **osbuild** setup, you can run it on an empty pipeline which
Packit Service 863627
produces no output:
Packit Service 863627
Packit Service 863627
    |
Packit Service 863627
    | # echo {} | osbuild -
Packit Service 863627
    |
Packit Service 863627
Packit Service 863627
Example 1: Build a Fedora 30 qcow2 image
Packit Service 863627
----------------------------------------
Packit Service 863627
Packit Service 863627
To build a basic qcow2 image of Fedora 30, use:
Packit Service 863627
Packit Service 863627
    |
Packit Service 863627
    | # osbuild ./samples/base-qcow2.json
Packit Service 863627
    |
Packit Service 863627
Packit Service 863627
The pipeline definition ``./samples/base-rpm-qcow2.json`` is provided in the
Packit Service 863627
upstream source repository of **osbuild**.
Packit Service 863627
Packit Service 863627
Example 2: Run from a local checkout
Packit Service 863627
------------------------------------
Packit Service 863627
Packit Service 863627
To run **osbuild** from a local checkout, use:
Packit Service 863627
Packit Service 863627
    |
Packit Service 863627
    | # python3 -m osbuild --libdir . samples/base-rpm-qcow2.json
Packit Service 863627
    |
Packit Service 863627
Packit Service 863627
This will make sure to execute the **osbuild** module from the current
Packit Service 863627
directory, as well as use it to search for stages, assemblers, and more.
Packit Service 863627
Packit Service 863627
SEE ALSO
Packit Service 863627
========
Packit Service 863627
Packit Service 863627
``osbuild-manifest``\(5), ``osbuild-composer``\(1)
Packit Service 863627
Packit Service 863627
NOTES
Packit Service 863627
=====
Packit Service 863627
Packit Service 863627
.. [#] OSBuild JSON Schema:
Packit Service 863627
       https://osbuild.org/schemas/osbuild1.json