salt.modules.genesis
Module for managing container and VM images
New in version 2014.7.0.
-
Return which platforms are available
CLI Example:
salt myminion genesis.avail_platforms
salt.modules.genesis.avail_platforms()
-
Create an image for a specific platform.
Please note that this function MUST be run as root, as images that are created make files belonging to root.
- platform
-
Which platform to use to create the image. Currently supported platforms are rpm, deb and pacman.
- root
-
Local path to create the root of the image filesystem.
- img_format
-
Which format to create the image in. By default, just copies files into a directory on the local filesystem (
dir
). Future support will exist forsparse
. - fs_format
-
When using a non-
dir
img_format
, which filesystem to format the image to. By default,ext2
. - fs_opts
-
When using a non-
dir
img_format
, a dict of opts may be specified. - arch
-
Architecture to install packages for, if supported by the underlying bootstrap tool. Currently only used for deb.
- flavor
-
Which flavor of operating system to install. This correlates to a specific directory on the distribution repositories. For instance,
wheezy
on Debian. - repo_url
-
Mainly important for Debian-based repos. Base URL for the mirror to install from. (e.x.: http://ftp.debian.org/debian/)
- static_qemu
-
Local path to the static qemu binary required for this arch. (e.x.: /usr/bin/qemu-amd64-static)
- pkg_confs
-
The location of the conf files to copy into the image, to point the installer to the right repos and configuration.
- img_size
-
If img_format is not
dir
, then the size of the image must be specified. - mount_dir
-
If img_format is not
dir
, then the image must be mounted somewhere. If themount_dir
is not specified, then it will be created at/opt/salt-genesis.<random_uuid>
. This directory will be unmounted and removed when the process is finished. - pkg_cache
-
This points to a directory containing a cache of package files to be copied to the image. It does not need to be specified.
- pkgs
-
A list of packages to be installed on this image. For RedHat, this will include
yum
,centos-release
andiputils
by default. - exclude_pkgs
-
A list of packages to be excluded. If you do not want to install the defaults, you need to include them in this list.
- epel_url
-
The URL to download the EPEL release package from.
CLI Examples:
salt myminion genesis.bootstrap pacman /root/arch salt myminion genesis.bootstrap rpm /root/redhat salt myminion genesis.bootstrap deb /root/wheezy arch=amd64 flavor=wheezy static_qemu=/usr/bin/qemu-x86_64-static
salt.modules.genesis.bootstrap(platform, root, img_format='dir', fs_format='ext2', fs_opts=None, arch=None, flavor=None, repo_url=None, static_qemu=None, img_size=None, mount_dir=None, pkg_cache=None, pkgs=None, exclude_pkgs=None, epel_url='http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm')
-
Recurse through a set of dependencies reported by
ldd
, to find associated dependencies.Please note that this does not necessarily resolve all (non-package) dependencies for a file; but it does help.
CLI Example:
salt myminion genesis.ldd_deps bash salt myminion genesis.ldd_deps /bin/bash
salt.modules.genesis.ldd_deps(filename, ret=None)
-
Convert an installation file/script to an SLS file. Currently supports
kickstart
,preseed
, andautoyast
.CLI Examples:
salt <minion> genesis.mksls kickstart /path/to/kickstart.cfg salt <minion> genesis.mksls kickstart /path/to/kickstart.cfg /path/to/dest.sls
New in version 2015.8.0.
salt.modules.genesis.mksls(fmt, src, dst=None)
-
Pack up a directory structure, into a specific format
CLI Examples:
salt myminion genesis.pack centos /root/centos salt myminion genesis.pack centos /root/centos pack_format='tar'
salt.modules.genesis.pack(name, root, path=None, pack_format='tar', compress='bzip2')
-
Unpack an image into a directory structure
CLI Example:
salt myminion genesis.unpack centos /root/centos
salt.modules.genesis.unpack(name, dest=None, path=None, pack_format='tar', compress='bz2')
© 2021 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltproject.io/en/latest/ref/modules/all/salt.modules.genesis.html