Extract an archive
New in version 2014.1.0.
salt.states.archive.
extracted
(name, source, archive_format, archive_user=None, user=None, group=None, tar_options=None, source_hash=None, if_missing=None, keep=False)¶New in version 2014.1.0.
State that make sure an archive is extracted in a directory. The downloaded archive is erased if successfully extracted. The archive is downloaded only if necessary.
Note
If if_missing
is not defined, this state will check for name
instead. If name
exists, it will assume the archive was previously
extracted successfully and will not extract it again.
Example, tar with flag for lmza compression:
graylog2-server:
archive.extracted:
- name: /opt/
- source: https://github.com/downloads/Graylog2/graylog2-server/graylog2-server-0.9.6p1.tar.lzma
- source_hash: md5=499ae16dcae71eeb7c3a30c75ea7a1a6
- tar_options: J
- archive_format: tar
- if_missing: /opt/graylog2-server-0.9.6p1/
Example, tar with flag for verbose output:
graylog2-server:
archive.extracted:
- name: /opt/
- source: https://github.com/downloads/Graylog2/graylog2-server/graylog2-server-0.9.6p1.tar.gz
- source_hash: md5=499ae16dcae71eeb7c3a30c75ea7a1a6
- archive_format: tar
- tar_options: v
- user: root
- group: root
- if_missing: /opt/graylog2-server-0.9.6p1/
The user to own each extracted file.
Deprecated since version 2014.7.2: Replaced by user
parameter
The user to own each extracted file.
New in version 2015.8.0.
The group to own each extracted file.
New in version 2015.8.0.
If archive_format
is set to tar
, this option can be used to
specify a string of additional arguments to pass to the tar command. If
archive_format
is set to tar
and this option is not used,
then the minion will attempt to use Python's native tarfile support to
extract it. Python's native tarfile support can only handle gzip and
bzip2 compression, however.
Changed in version 2015.8.11,2016.3.2: XZ-compressed archives no longer require J
to manually be set
in the tar_options
, they are now detected automatically and
Salt will extract them using xz-utils
. This is a more
platform-independent solution, as not all tar implementations
support the J
argument for extracting archives.
Note
Main operators like -x, --extract, --get, -c and -f/--file should not be used here.
Using this option means that the tar
command will be used,
which is less platform-independent, so keep this in mind when using
this option; the options must be valid options for the tar
implementation on the minion's OS.