fact_diff¶
Collection Note
This module is part of the ansible.utils collection. To install the collection, use:
Added in version2.12.0.
Synopsis¶
- Compare two facts or variables and get a diff.
Parameters¶
| Parameter | Defaults / Choices | 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. | |
| common bool |
Show all common lines. | |
| plugin dict |
Configure and specify the diff plugin to use | |
| plugin.name | Default: ansible.utils.native |
The diff plugin to use, in fully qualified collection name format. |
| plugin.vars | Parameters passed to the diff plugin. |
Examples¶
- name: Set fact
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.builtin.set_fact:
result: "{{before | ansible.utils.fact_diff(after)}}"
# TASK [Show the difference in json format] **********************************************************************************************
# ok: [localhost] => {
# "ansible_facts": {
# "result": [
# "--- before",
# "+++ after",
# "@@ -3,8 +3,8 @@",
# " "b": {",
# " "c": {",
# " "d": [",
# "- 0,",
# "- 1",
# "+ 2,",
# "+ 3",
# " ]",
# " }",
# " }",
# ""
# ]
# },
# "changed": false
# }
- name: Set fact
ansible.builtin.set_fact:
before: "{{ before|ansible.utils.to_paths }}"
after: "{{ after|ansible.utils.to_paths }}"
- name: Show the difference in path format
ansible.builtin.set_fact:
result: "{{before | ansible.utils.fact_diff(after)}}"
# TASK [Show the difference in path format] **********************************************************************************************
# ok: [localhost] => {
# "ansible_facts": {
# "result": [
# "--- 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": false
# }
- name: Set fact
ansible.builtin.set_fact:
before: "{{ before|to_nice_yaml }}"
after: "{{ after|to_nice_yaml }}"
- name: Show the difference in yaml format
ansible.builtin.set_fact:
result: "{{before | ansible.utils.fact_diff(after)}}"
# TASK [Show the difference in yaml format] **********************************************************************************************
# ok: [localhost] => {
# "ansible_facts": {
# "result": [
# "--- before",
# "+++ after",
# "@@ -1,2 +1,2 @@",
# "-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": false
# }
Return Values¶
| Key | Data Type | Description | Returned |
|---|---|---|---|
| result | list | Returns diff between before and after facts. |
Authors¶
- Ashwini Mhatre ((@amhatre))