Ansible Module xml

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

The plugin is named community.general.xml and it offers functionality aimed at interacting with XML files, using XPath.

Example

<root>
    <child name="A" color="red"/>
    <child name="B" color="green"/>
    <child name="C" color="blue"/>
</root>
- name: XML manipulation
  xml:
    path: /tmp/test.xml # the file must exist
    xpath: /root/child[@name='B']

Module Parameters

path

The path to the file to operate on. The file must exists, otherwise the module will fail, with a message similar to: The target XML source '...' does not exist.. The parameter is required unless xmlstring is provided.

xpath

A valid XPath expression describing the file item(s) to manipulate. Operates on the document root, /, by default.

xmlstring

Use Cases

Query

Insertion

Update

Deletion

- name: Bump Java build heap size to {{build.jvm.heap_max}} MB
  xml:
    path: "{{ansible_env.PROJECT_ROOT}}/.idea/compiler.xml"
    xpath: /project/component[@name='CompilerConfiguration']/option[@name='BUILD_PROCESS_HEAP_SIZE']
    attribute: "value"
    value: "{{build.jvm.heap_max}}"
- name: Set Eclipse as default compiler
  xml:
    path: "{{idea_path}}/.idea/compiler.xml"
    xpath: /project/component[@name='CompilerConfiguration']/option[@name='DEFAULT_COMPILER']
    attribute: "value"
    value: "Eclipse"