.\" 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]\ 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