The pkgbuild state is the front of Salt package building backend. It automatically builds DEB and RPM packages from specified sources
New in version 2015.8.0.
salt_2015.5.2:
pkgbuild.built:
- runas: thatch
- results:
- salt-2015.5.2-2.el7.centos.noarch.rpm
- salt-api-2015.5.2-2.el7.centos.noarch.rpm
- salt-cloud-2015.5.2-2.el7.centos.noarch.rpm
- salt-master-2015.5.2-2.el7.centos.noarch.rpm
- salt-minion-2015.5.2-2.el7.centos.noarch.rpm
- salt-ssh-2015.5.2-2.el7.centos.noarch.rpm
- salt-syndic-2015.5.2-2.el7.centos.noarch.rpm
- dest_dir: /tmp/pkg
- spec: salt://pkg/salt/spec/salt.spec
- template: jinja
- deps:
- salt://pkg/salt/sources/required_dependency.rpm
- tgt: epel-7-x86_64
- sources:
- salt://pkg/salt/sources/logrotate.salt
- salt://pkg/salt/sources/README.fedora
- salt://pkg/salt/sources/salt-2015.5.2.tar.gz
- salt://pkg/salt/sources/salt-2015.5.2-tests.patch
- salt://pkg/salt/sources/salt-api
- salt://pkg/salt/sources/salt-api.service
- salt://pkg/salt/sources/salt-master
- salt://pkg/salt/sources/salt-master.service
- salt://pkg/salt/sources/salt-minion
- salt://pkg/salt/sources/salt-minion.service
- salt://pkg/salt/sources/saltpkg.sls
- salt://pkg/salt/sources/salt-syndic
- salt://pkg/salt/sources/salt-syndic.service
- salt://pkg/salt/sources/SaltTesting-2015.5.8.tar.gz
/tmp/pkg:
pkgbuild.repo
salt.states.pkgbuild.
built
(name, runas, dest_dir, spec, sources, tgt, template=None, deps=None, env=None, results=None, force=False, always=None, saltenv='base', log_dir='/var/log/salt/pkgbuild')¶Ensure that the named package is built and exists in the named directory
Run the spec file through a templating engine
Changed in version 2015.8.2: This argument is now optional, allowing for no templating engine to be used if none is desired.
A dictionary of environment variables to be set prior to execution. Example:
- env:
DEB_BUILD_OPTIONS: 'nocheck'
Warning
The above illustrates a common PyYAML pitfall, that yes,
no, on, off, true, and false are all loaded as
boolean True
and False
values, and must be enclosed in
quotes to be used as strings. More info on this (and other) PyYAML
idiosyncrasies can be found here.
If True
, packages will be built even if they already exist in the
dest_dir
. This is useful when building a package for continuous or
nightly package builds.
New in version 2015.8.2.
If True
, packages will be built even if they already exist in the
dest_dir
. This is useful when building a package for continuous or
nightly package builds.
Deprecated since version 2015.8.2: Use force
instead.
Root directory for log files created from the build. Logs will be organized by package name, version, OS release, and CPU architecture under this directory.
New in version 2015.8.2.
salt.states.pkgbuild.
repo
(name, keyid=None, env=None, use_passphrase=False, gnupghome='/etc/salt/gpgkeys', runas='builder', timeout=15.0)¶Make a package repository 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.
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:
gpg_pkg_priv_key: |
-----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
gpg_pkg_pub_key: |
-----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
Changed in version 2016.3.0.
A dictionary of environment variables to be utilized in creating the repository. Example:
- env:
OPTIONS: 'ask-passphrase'
Warning
The above illustrates a common PyYAML
pitfall, that yes,
no, on, off, true, and false are all loaded as
boolean True
and False
values, and must be enclosed in
quotes to be used as strings. More info on this (and other)
PyYAML
idiosyncrasies can be found here.
Use of OPTIONS
on some platforms, for example:
ask-passphrase
, will require gpg-agent
or similar to cache
passphrases.
Note
This parameter is not used for making yum
repositories.
New in version 2016.3.0.
Use a passphrase with the signing key presented in keyid
.
Passphrase is received from Pillar data which could be passed on the
command line with pillar
parameter. For example:
pillar='{ "gpg_passphrase" : "my_passphrase" }'
New in version 2016.3.0.
Location where GPG related files are stored, used with 'keyid'
New in version 2016.3.0.
User to create the repository as, and optionally sign packages.
Note
Ensure the user has correct permissions to any files and directories which are to be utilized.
New in version 2016.3.4.
Timeout in seconds to wait for the prompt for inputting the passphrase.