RPM Package builder system
New in version 2015.8.0.
This system allows for all of the components to build rpms safely in chrooted environments. This also provides a function to generate yum repositories
This module implements the pkgbuild interface
salt.modules.rpmbuild.
build
(runas, tgt, dest_dir, spec, sources, deps, env, template, saltenv='base', log_dir='/var/log/salt/pkgbuild')¶Given the package destination directory, the spec file source and package sources, use mock to safely build the rpm defined in the spec file
CLI Example:
salt '*' pkgbuild.build mock epel-7-x86_64 /var/www/html https://raw.githubusercontent.com/saltstack/libnacl/master/pkg/rpm/python-libnacl.spec https://pypi.python.org/packages/source/l/libnacl/libnacl-1.3.5.tar.gz
This example command should build the libnacl package for rhel 7 using user mock and place it in /var/www/html/ on the minion
salt.modules.rpmbuild.
make_repo
(repodir, keyid=None, env=None, use_passphrase=False, gnupghome='/etc/salt/gpgkeys', runas='root')¶Given the repodir, create a yum repository out of the rpms therein and optionally sign it and packages present, the name is directory to turn into a repo. This state is best used with onchanges linked to your package building states
CLI Example:
.. code-block:: bash
salt '*' pkgbuild.make_repo /var/www/html/
Changed in version 2016.3.0.
Optional Key ID to use in signing packages and repository. Utilizes Public and Private keys associated with keyid which have been loaded into the minion's Pillar Data.
For example, contents from a pillar data file with named Public and Private keys as follows:
-----BEGIN PGP PRIVATE KEY BLOCK----- Version: GnuPG v1
lQO+BFciIfQBCADAPCtzx7I5Rl32escCMZsPzaEKWe7bIX1em4KCKkBoX47IG54b w82PCE8Y1jF/9Uk2m3RKVWp3YcLlc7Ap3gj6VO4ysvVz28UbnhPxsIkOlf2cq8qc . . Ebe+8JCQTwqSXPRTzXmy/b5WXDeM79CkLWvuGpXFor76D+ECMRPv/rawukEcNptn R5OmgHqvydEnO4pWbn8JzQO9YX/Us0SMHBVzLC8eIi5ZIopzalvX =JvW8 -----END PGP PRIVATE KEY BLOCK-----
gpg_pkg_priv_keyname: gpg_pkg_key.pem
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1
mQENBFciIfQBCADAPCtzx7I5Rl32escCMZsPzaEKWe7bIX1em4KCKkBoX47IG54b w82PCE8Y1jF/9Uk2m3RKVWp3YcLlc7Ap3gj6VO4ysvVz28UbnhPxsIkOlf2cq8qc . . bYP7t5iwJmQzRMyFInYRt77wkJBPCpJc9FPNebL9vlZcN4zv0KQta+4alcWivvoP 4QIxE+/+trC6QRw2m2dHk6aAeq/J0Sc7ilZufwnNA71hf9SzRIwcFXMsLx4iLlki inNqW9c= =s1CX -----END PGP PUBLIC KEY BLOCK-----
gpg_pkg_pub_keyname: gpg_pkg_key.pub
Optional dictionary of environment variables to be utlilized in creating the repository.
New in version 2016.3.0.
Use a passphrase with the signing key presented in 'keyid'. Passphrase is received from pillar data which has been passed on the command line. For example:
pillar='{ "gpg_passphrase" : "my_passphrase" }'
User to create the repository as, and optionally sign packages.
salt.modules.rpmbuild.
make_src_pkg
(dest_dir, spec, sources, env=None, template=None, saltenv='base')¶Create a source rpm from the given spec file and sources
CLI Example:
salt '*' pkgbuild.make_src_pkg /var/www/html/ https://raw.githubusercontent.com/saltstack/libnacl/master/pkg/rpm/python-libnacl.spec https://pypi.python.org/packages/source/l/libnacl/libnacl-1.3.5.tar.gz
This example command should build the libnacl SOURCE package and place it in /var/www/html/ on the minion