Note
This plugin is part of the ansible.utils collection (version 2.0.0).
To install it use: ansible-galaxy collection install ansible.utils
.
To use it in a playbook, specify: ansible.utils.fact_diff
.
New in version 1.0.0: of ansible.utils
Note
This module has a corresponding action plugin.
Parameter | Choices/Defaults | Comments | ||
---|---|---|---|---|
after raw / required | The second fact to be used in the comparison. | |||
before raw / required | The first fact to be used in the comparison. | |||
plugin dictionary | Default: {} | Configure and specify the diff plugin to use | ||
name string | Default: "ansible.utils.native" | The diff plugin to use, in fully qualified collection name format. | ||
vars dictionary | Default: {} | Parameters passed to the diff plugin. | ||
skip_lines list / elements=string | Skip lines matching these regular expressions. Matches will be removed prior to the diff. If the provided before and after are a string, they will be split. Each entry in each list will be cast to a string for the comparison |
- ansible.builtin.set_fact: before: a: b: c: d: - 0 - 1 after: a: b: c: d: - 2 - 3 - name: Show the difference in json format ansible.utils.fact_diff: before: "{{ before }}" after: "{{ after }}" # TASK [ansible.utils.fact_diff] ************************************** # --- before # +++ after # @@ -3,8 +3,8 @@ # "b": { # "c": { # "d": [ # - 0, # - 1 # + 2, # + 3 # ] # } # } # # changed: [localhost] - name: Show the difference in path format ansible.utils.fact_diff: before: "{{ before|ansible.utils.to_paths }}" after: "{{ after|ansible.utils.to_paths }}" # TASK [ansible.utils.fact_diff] ************************************** # --- before # +++ after # @@ -1,4 +1,4 @@ # { # - "a.b.c.d[0]": 0, # - "a.b.c.d[1]": 1 # + "a.b.c.d[0]": 2, # + "a.b.c.d[1]": 3 # } # # changed: [localhost] - name: Show the difference in yaml format ansible.utils.fact_diff: before: "{{ before|to_nice_yaml }}" after: "{{ after|to_nice_yaml }}" # TASK [ansible.utils.fact_diff] ************************************** # --- before # +++ after # @@ -2,5 +2,5 @@ # b: # c: # d: # - - 0 # - - 1 # + - 2 # + - 3 # changed: [localhost] #### Show the difference between complex object using restconf # ansible_connection: ansible.netcommon.httpapi # ansible_httpapi_use_ssl: True # ansible_httpapi_validate_certs: False # ansible_network_os: ansible.netcommon.restconf - name: Get the current interface config prior to changes ansible.netcommon.restconf_get: content: config path: /data/Cisco-NX-OS-device:System/intf-items/phys-items register: pre - name: Update the description of eth1/100 ansible.utils.update_fact: updates: - path: "pre['response']['phys-items']['PhysIf-list'][{{ index }}]['descr']" value: "Configured by ansible {{ 100 | random }}" vars: index: "{{ pre['response']['phys-items']['PhysIf-list']|ansible.utils.index_of('eq', 'eth1/100', 'id') }}" register: updated - name: Apply the configuration ansible.netcommon.restconf_config: path: 'data/Cisco-NX-OS-device:System/intf-items/' content: "{{ updated.pre.response}}" method: patch - name: Get the current interface config after changes ansible.netcommon.restconf_get: content: config path: /data/Cisco-NX-OS-device:System/intf-items/phys-items register: post - name: Show the difference ansible.utils.fact_diff: before: "{{ pre.response|ansible.utils.to_paths }}" after: "{{ post.response|ansible.utils.to_paths }}" # TASK [ansible.utils.fact_diff] ********************************************* # --- before # +++ after # @@ -3604,7 +3604,7 @@ # "phys-items['PhysIf-list'][37].bw": "0", # "phys-items['PhysIf-list'][37].controllerId": "", # "phys-items['PhysIf-list'][37].delay": "1", # - "phys-items['PhysIf-list'][37].descr": "Configured by ansible 95", # + "phys-items['PhysIf-list'][37].descr": "Configured by ansible 20", # "phys-items['PhysIf-list'][37].dot1qEtherType": "0x8100", # "phys-items['PhysIf-list'][37].duplex": "auto", # "phys-items['PhysIf-list'][37].id": "eth1/100", # changed: [nxos101]
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
diff_lines list / elements=string | always | The diff_text split into lines. |
diff_text string | always | The diff in text format. |
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/utils/fact_diff_module.html