ansible.windows.win_template (2.3.0) — module

Template a file out to a remote server

Authors: Jon Hawkesworth (@jhawkesworth)

This plugin has a corresponding action plugin.

Install collection

Install with ansible-galaxy collection install ansible.windows:==2.3.0


Add to requirements.yml

  collections:
    - name: ansible.windows
      version: 2.3.0

Description

Templates are processed by the L(Jinja2 templating language,http://jinja.pocoo.org/docs/).

Documentation on the template formatting can be found in the L(Template Designer Documentation,http://jinja.pocoo.org/docs/templates/).

Additional variables listed below can be used in templates.

C(ansible_managed) (configurable via the C(defaults) section of C(ansible.cfg)) contains a string which can be used to describe the template name, host, modification time of the template file and the owner uid.

C(template_host) contains the node name of the template's machine.

C(template_uid) is the numeric user id of the owner.

C(template_path) is the path of the template.

C(template_fullpath) is the absolute path of the template.

C(template_destpath) is the path of the template on the remote system (added in 2.8).

C(template_run_date) is the date that the template was rendered.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create a file from a Jinja2 template
  ansible.windows.win_template:
    src: /mytemplates/file.conf.j2
    dest: C:\Temp\file.conf
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create a Unix-style file from a Jinja2 template
  ansible.windows.win_template:
    src: unix/config.conf.j2
    dest: C:\share\unix\config.conf
    newline_sequence: '\n'
    backup: true

Inputs

    
src:
    description:
    - Path of a Jinja2 formatted template on the Ansible controller.
    - This can be a relative or an absolute path.
    - The file must be encoded with C(utf-8) but I(output_encoding) can be used to control
      the encoding of the output template.
    required: true
    type: path

dest:
    description:
    - Location to render the template to on the remote machine.
    required: true
    type: path

force:
    default: true
    description:
    - Determine when the file is being transferred if the destination already exists.
    - When set to C(true), replace the remote file when contents are different than the
      source.
    - When set to C(false), the file will only be transferred if the destination does
      not exist.
    type: bool

backup:
    default: false
    description:
    - Determine whether a backup should be created.
    - When set to C(true), create a backup file including the timestamp information so
      you can get the original file back if you somehow clobbered it incorrectly.
    type: bool

trim_blocks:
    default: true
    description:
    - Determine when newlines should be removed from blocks.
    - When set to C(true) the first newline after a block is removed (block, not variable
      tag!).
    type: bool

lstrip_blocks:
    default: false
    description:
    - Determine when leading spaces and tabs should be stripped.
    - When set to C(true) leading spaces and tabs are stripped from the start of a line
      to a block.
    - This functionality requires Jinja 2.7 or newer.
    type: bool

output_encoding:
    default: utf-8
    description:
    - Overrides the encoding used to write the template file defined by C(dest).
    - It defaults to C(utf-8), but any encoding supported by python can be used.
    - The source template file must always be encoded using C(utf-8), for homogeneity.
    type: str

block_end_string:
    default: '%}'
    description:
    - The string marking the end of a block.
    type: str

newline_sequence:
    choices:
    - \n
    - \r
    - \r\n
    default: \r\n
    description:
    - Specify the newline sequence to use for templating files.
    type: str

block_start_string:
    default: '{%'
    description:
    - The string marking the beginning of a block.
    type: str

variable_end_string:
    default: '}}'
    description:
    - The string marking the end of a print statement.
    type: str

variable_start_string:
    default: '{{'
    description:
    - The string marking the beginning of a print statement.
    type: str

Outputs

backup_file:
  description: Name of the backup file that was created.
  returned: if backup=true
  sample: C:\Path\To\File.txt.11540.20150212-220915.bak
  type: str

See also