ansible-config_template/library/config_template

94 lines
3.1 KiB
Plaintext

# this is a virtual module that is entirely implemented server side
DOCUMENTATION = """
---
module: config_template
version_added: 1.9.2
short_description: Renders template files providing a create/update override interface
description:
- The module contains the template functionality with the ability to override items
in config, in transit, through the use of a simple dictionary without having to
write out various temp files on target machines. The module renders all of the
potential jinja a user could provide in both the template file and in the override
dictionary which is ideal for deployers who may have lots of different configs
using a similar code base.
- The module is an extension of the **copy** module and all of attributes that can be
set there are available to be set here.
options:
src:
description:
- Path of a Jinja2 formatted template on the local server. This can be a relative
or absolute path.
required: true
default: null
dest:
description:
- Location to render the template to on the remote machine.
required: true
default: null
config_overrides:
description:
- A dictionary used to update or override items within a configuration template.
The dictionary data structure may be nested. If the target config file is an ini
file the nested keys in the ``config_overrides`` will be used as section
headers.
config_type:
description:
- A string value describing the target config type.
choices:
- ini
- json
- yaml
list_extend:
description:
- By default a list item in a JSON or YAML format will extend if
its already defined in the target template and a config_override
using a list is being set for the existing "key". This functionality
can be toggled on or off using this option. If disabled an override
list will replace an existing "key".
choices:
- True
- False
ignore_none_type:
description:
- Can be true or false. If ignore_none_type is set to true, then
valueless INI options will not be written out to the resultant file.
If it's set to false, then config_template will write out only
the option name without the '=' or ':' suffix. The default is true.
choices:
- True
- False
default_section:
description:
- Specify the default section for INI configuration files. This is the
section that will appear at the top of the configuration file. For
example 'global'.
default: 'DEFAULT'
author: Kevin Carter
"""
EXAMPLES = """
- name: run config template ini
config_template:
src: templates/test.ini.j2
dest: /tmp/test.ini
config_overrides: {}
top_ini_section: 'global'
config_type: ini
- name: run config template json
config_template:
src: templates/test.json.j2
dest: /tmp/test.json
config_overrides: {}
config_type: json
- name: run config template yaml
config_template:
src: templates/test.yaml.j2
dest: /tmp/test.yaml
config_overrides: {}
config_type: yaml
"""