iso_extract – Extract files from an ISO image

Synopsis

  • This module has two possible ways of operation.

  • If 7zip is installed on the system, this module extracts files from an ISO into a temporary directory and copies files to a given destination, if needed.

  • If the user has mount-capabilities (CAP_SYS_ADMIN on Linux) this module mounts the ISO image to a temporary location, and copies files to a given destination, if needed.

Requirements

The below requirements are needed on the host that executes this module.

  • Either 7z (from 7zip or p7zip package)

  • Or mount capabilities (root-access, or CAP_SYS_ADMIN capability on Linux)

Parameters

Parameter Choices/Defaults Comments
dest
path / required
The destination directory to extract files to.
executable
path
added in 2.4
Default:
"7z"
The path to the 7z executable to use for extracting files from the ISO.
files
list / required
A list of files to extract from the image.
Extracting directories does not work.
force
boolean
added in 2.4
    Choices:
  • no
  • yes ←
If yes, which will replace the remote file when contents are different than the source.
If no, the file will only be extracted and copied if the destination does not already exist.
Alias thirsty has been deprecated and will be removed in 2.13.

aliases: thirsty
image
path / required
The ISO image to extract files from.

aliases: path, src

Notes

Note

  • Only the file checksum (content) is taken into account when extracting files from the ISO image. If force=no, only checks the presence of the file.

  • In Ansible 2.3 this module was using mount and umount commands only, requiring root access. This is no longer needed with the introduction of 7zip for extraction.

Examples

- name: Extract kernel and ramdisk from a LiveCD
  iso_extract:
    image: /tmp/rear-test.iso
    dest: /tmp/virt-rear/
    files:
    - isolinux/kernel
    - isolinux/initrd.cgz

Status

Authors

  • Jeroen Hoekx (@jhoekx)

  • Matt Robinson (@ribbons)

  • Dag Wieers (@dagwieers)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.