Merge "Add more complete examples with sample output"

This commit is contained in:
Zuul 2022-06-20 14:09:18 +00:00 committed by Gerrit Code Review
commit 15c29209f0
1 changed files with 131 additions and 8 deletions

View File

@ -15,6 +15,137 @@ Renders template files providing a create/update override interface
- The module is an extension of the **copy** module and all of attributes that
can be set there are available to be set here.
Examples
--------
Example for .conf
^^^^^^^^^^^^^^^^^
The `config_template` plugin has a variety of tools available. A .conf file
may include options that are not normally supported in an INI file, but are
used in OpenStack, like ListOpt and MultiStrOpt.
Even though we are generating a .conf file, we specify the `config_type`` of
`ini`` when using config_template.
Playbook:
.. code-block :: yaml
- hosts: localhost
connection: local
gather_facts: no
tasks:
- openstack.config_template.config_template:
content: |
[foo]
bar = baz
[section1]
option1 = value1
dest: "test_dst.conf"
config_type: "ini"
config_overrides:
hello:
cruel: world
section1:
option1: value2
orderedListSection:
listOpt:
- listItem1
- listItem2
multiStrOpSection:
multiStrOpOption:
? multiStrOp1
? multiStrOp2
Resulting file on the remote host:
.. code-block :: ini
[foo]
bar = baz
[section1]
option1 = value2
[hello]
cruel = world
[orderedListSection]
listOpt = listItem1,listItem2
[multiStrOpSection]
multiStrOpOption = multiStrOp1
multiStrOpOption = multiStrOp2
A practical example would be for something like OpenStack's nova.conf where the
input of:
.. code-block :: yaml
nova_conf_override:
filter_scheduler:
enabled_filters:
- ComputeFilter
- NUMATopologyFilter
pci:
? passthrough_whitelist: '{"address":"*:0a:00.*",
"physical_network":"pn1"}'
? passthrough_whitelist: '{"vendor_id":"1137","product_id":"0071"}'
Would produce:
.. code-block :: ini
[filter_scheduler]
enabled_filters = ComputeFilter,NUMATopologyFilter
[pci]
passthrough_whitelist = '{"address":"*:0a:00.*", "physical_network":"pn1"}'
passthrough_whitelist = '{"vendor_id":"1137","product_id":"0071"}'
Example for .ini with remote_src
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The `remote_src: true` argument instructs `config_template` to use a file that
is already on the remote host as the source content.
Input file on the remote host:
.. code-block :: ini
[foo]
# comment
bar = baz
[hello]
Playbook:
.. code-block :: yaml
- hosts: remote_host
gather_facts: no
tasks:
- config_template:
remote_src: true
src: "/etc/test_src.ini"
dest: "/etc/test_dst.ini"
config_type: "ini"
config_overrides:
hello:
cruel: world
Resulting file on the remote host:
.. code-block :: ini
[foo]
# comment
bar = baz
[hello]
cruel = world
Loading
-------
@ -38,11 +169,3 @@ you in a given project. To do this add the following lines to your
.. literalinclude:: ../../examples/ansible-role-requirements.yml
:language: yaml
Examples
--------
.. literalinclude:: ../../library/config_template
:language: yaml
:start-after: EXAMPLES = """
:end-before: """