Module for managing container and VM images
New in version 2014.7.0.
salt.modules.genesis.
avail_platforms
()¶Return which platforms are available
CLI Example:
salt myminion genesis.avail_platforms
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')¶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.
Which platform to use to create the image. Currently supported platforms are rpm, deb and pacman.
Local path to create the root of the image filesystem.
Which format to create the image in. By default, just copies files into
a directory on the local filesystem (dir
). Future support will exist
for sparse
.
When using a non-dir
img_format
, which filesystem to format the
image to. By default, ext2
.
When using a non-dir
img_format
, a dict of opts may be
specified.
Architecture to install packages for, if supported by the underlying bootstrap tool. Currently only used for deb.
Which flavor of operating system to install. This correlates to a
specific directory on the distribution repositories. For instance,
wheezy
on Debian.
Mainly important for Debian-based repos. Base URL for the mirror to install from. (e.x.: http://ftp.debian.org/debian/)
Local path to the static qemu binary required for this arch. (e.x.: /usr/bin/qemu-amd64-static)
The location of the conf files to copy into the image, to point the installer to the right repos and configuration.
If img_format is not dir
, then the size of the image must be
specified.
If img_format is not dir
, then the image must be mounted somewhere.
If the mount_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.
This points to a directory containing a cache of package files to be copied to the image. It does not need to be specified.
A list of packages to be installed on this image. For RedHat, this
will include yum
, centos-release
and iputils
by default.
A list of packages to be excluded. If you do not want to install the defaults, you need to include them in this list.
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.
ldd_deps
(filename, ret=None)¶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.
mksls
(fmt, src, dst=None)¶Convert an installation file/script to an SLS file. Currently supports
kickstart
, preseed
, and autoyast
.
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 Beryllium.
salt.modules.genesis.
pack
(name, root, path=None, pack_format='tar', compress='bzip2')¶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.
unpack
(name, dest=None, path=None, pack_format='tar', compress='bz2')¶Unpack an image into a directory structure
CLI Example:
salt myminion genesis.unpack centos /root/centos