patch - Apply patch files using the GNU patch tool

New in version 1.9.

Synopsis

Parameters

Parameter Choices/Defaults Comments
backup
bool

(added in 2.0)
    Choices:
  • no ←
  • yes
Passes --backup --version-control=numbered to patch, producing numbered backup copies.
basedir
Path of a base directory in which the patch file will be applied. May be omitted when dest option is specified, otherwise required.
binary
bool

(added in 2.0)
    Choices:
  • no ←
  • yes
Setting to yes will disable patch's heuristic for transforming CRLF line endings into LF. Line endings of src and dest must match. If set to no, patch will replace CRLF in src files on POSIX.
dest
Path of the file on the remote machine to be patched.
The names of the files to be patched are usually taken from the patch file, but if there's just one file to be patched it can specified with this option.

aliases: originalfile
remote_src
bool
    Choices:
  • no ←
  • yes
If no, it will search for src at originating/master machine, if yes it will go to the remote/target machine for the src.
src
required
Path of the patch file as accepted by the GNU patch tool. If remote_src is 'no', the patch source file is looked up from the module's files directory.

aliases: patchfile
state
(added in 2.6)
    Choices:
  • absent
  • present ←
Whether the patch should be applied or reverted.
strip Default:
0
Number that indicates the smallest prefix containing leading slashes that will be stripped from each file name found in the patch file. For more information see the strip parameter of the GNU patch tool.

Notes

Note

  • This module requires GNU patch utility to be installed on the remote host.

Examples

- name: Apply patch to one file
  patch:
    src: /tmp/index.html.patch
    dest: /var/www/index.html

- name: Apply patch to multiple files under basedir
  patch:
    src: /tmp/customize.patch
    basedir: /var/www
    strip: 1

- name: Revert patch to one file
  patch:
    src: /tmp/index.html.patch
    dest: /var/www/index.html
    state: absent

Status

This module is flagged as stableinterface which means that the maintainers for this module guarantee that no backward incompatible interface changes will be made.

Maintenance

This module is flagged as community which means that it is maintained by the Ansible Community. See Module Maintenance & Support for more info.

For a list of other modules that are also maintained by the Ansible Community, see here.

Author

  • Jakub Jirutka (@jirutka)
  • Luis Alberto Perez Lazaro (@luisperlaz)

Hint

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