diff options
Diffstat (limited to 'doc/man/debos.1')
-rw-r--r-- | doc/man/debos.1 | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/doc/man/debos.1 b/doc/man/debos.1 new file mode 100644 index 0000000..6e58a40 --- /dev/null +++ b/doc/man/debos.1 @@ -0,0 +1,132 @@ +.\" Automatically generated by Pandoc 2.2.1 +.\" +.TH "debos" "1" "" "" "" +.hy +.SH NAME +.IP +.nf +\f[C] +debos\ \-\ \ Debian\ OS\ images\ builder +\f[] +.fi +.SH SYPNOSIS +.IP +.nf +\f[C] +debos\ [options]\ <recipe\ file\ in\ YAML> +debos\ [\-\-help] +\f[] +.fi +.PP +Application Options: +.IP +.nf +\f[C] +\ \ \ \ \ \ \-\-artifactdir= +\ \ \-t,\ \-\-template\-var=\ \ \ Template\ variables +\ \ \ \ \ \ \-\-debug\-shell\ \ \ \ \ Fall\ into\ interactive\ shell\ on\ error +\ \ \-s,\ \-\-shell=\ \ \ \ \ \ \ \ \ \ Redefine\ interactive\ shell\ binary\ (default:\ bash) +\ \ \ \ \ \ \-\-scratchsize=\ \ \ \ Size\ of\ disk\ backed\ scratch\ space +\f[] +.fi +.SH DESCRIPTION +.PP +debos is a tool to make the creation of various Debian\-based OS images +simpler. +While most other tools focus on specific use\-cases, debos is more meant +as a tool\-chain to make common actions trivial while providing enough +rope to do whatever tweaking that might be required behind the scene. +.PP +debos expects a YAML file as input and will run the actions listed in +the file sequentially. +These actions should be self\-contained and independent of each other. +.PP +Some of the actions provided by debos to customize and produce images +are: +.IP \[bu] 2 +apt: install packages and their dependencies with `apt' +.IP \[bu] 2 +debootstrap: construct the target rootfs with debootstrap +.IP \[bu] 2 +download: download a single file from the internet +.IP \[bu] 2 +filesystem\-deploy: deploy a root filesystem to an image previously +created +.IP \[bu] 2 +image\-partition: create an image file, make partitions and format them +.IP \[bu] 2 +ostree\-commit: create an OSTree commit from rootfs +.IP \[bu] 2 +ostree\-deploy: deploy an OSTree branch to the image +.IP \[bu] 2 +overlay: do a recursive copy of directories or files to the target +filesystem +.IP \[bu] 2 +pack: create a tarball with the target filesystem +.IP \[bu] 2 +raw: directly write a file to the output image at a given offset +.IP \[bu] 2 +run: allows to run a command or script in the filesystem or in the host +.IP \[bu] 2 +unpack: unpack files from archive in the filesystem +.PP +A full syntax description of all the debos actions can be found at: +https://godoc.org/github.com/go\-debos/debos/actions +.SH SIMPLE EXAMPLE +.PP +The following example will create a arm64 image, install several +packages in it, change the file /etc/hostname to \[lq]debian\[rq] and +finally make a tarball. +.IP +.nf +\f[C] +{{\-\ $image\ :=\ or\ .image\ "debian.tgz"\ \-}} + +architecture:\ arm64 + +actions: +\ \ \-\ action:\ debootstrap +\ \ \ \ suite:\ "buster" +\ \ \ \ components: +\ \ \ \ \ \ \-\ main +\ \ \ \ \ \ \-\ non\-free +\ \ \ \ mirror:\ https://deb.debian.org/debian +\ \ \ \ variant:\ minbase + +\ \ \-\ action:\ apt +\ \ \ \ packages:\ [\ sudo,\ openssh\-server,\ adduser,\ systemd\-sysv,\ firmware\-linux\ ] + +\ \ \-\ action:\ run +\ \ \ \ chroot:\ true +\ \ \ \ command:\ echo\ debian\ >\ /etc/hostname + +\ \ \-\ action:\ pack +\ \ \ \ file:\ {{\ $image\ }} +\ \ \ \ compression:\ gz +\f[] +.fi +.PP +To run it, create a file named \f[C]example.yaml\f[] and run: +.IP +.nf +\f[C] +debos\ example.yaml +\f[] +.fi +.PP +The final tarball will be named \[lq]debian.tgz\[rq] if you would like +to modify this name, you can provided a different name for the variable +image like this: +.IP +.nf +\f[C] +debos\ \-t\ image:"debian\-arm64.tgz"\ example.yaml +\f[] +.fi +.SH OTHER EXAMPLES +.PP +This example builds a customized image for a Raspberry Pi 3. +https://github.com/go\-debos/debos\-recipes +.SH SEE ALSO +.PP +fakemachine at https://github.com/go\-debos/fakemachine |