salt.modules.genesis#
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.
- 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-
dirimg_format, which filesystem to format the image to. By default,ext2.- fs_opts
When using a non-
dirimg_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,
wheezyon 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_diris 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-releaseandiputilsby 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.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, 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.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