@ -13,3 +13,35 @@
|
||||
api_token: "{{ client_token }}"
|
||||
api_path: "{{ api_address }}"
|
||||
api_query_string: "filter_by=subnetId&filter_value={{ subnet.id }}"
|
||||
|
||||
|
||||
- name: Load Subnet
|
||||
ansible.builtin.set_fact:
|
||||
cached_subnet: "{{ lookup('file', cache_filepath) }}"
|
||||
cacheable: false
|
||||
|
||||
|
||||
- name: Process Scan Results
|
||||
ansible.builtin.set_fact:
|
||||
subnet_scan_results: |-
|
||||
[
|
||||
{% for scanned_host in ((nmap_scan.stdout | ansible.utils.from_xml) | from_yaml).nmaprun.host %}
|
||||
{% if scanned_host.address[0]['@addrtype'] | default('') == 'ipv4' %}
|
||||
{
|
||||
{% for cached_host in cached_subnet -%}
|
||||
{%- if cached_host.ip == scanned_host.address[0]['@addr'] -%}
|
||||
"id": {{ cached_host.id }},
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
"subnetId": "{{ subnet.id }}",
|
||||
"ip": "{{ scanned_host.address[0]['@addr'] }}",
|
||||
"lastSeen": "{{ nmap_scan.start }}",
|
||||
"mac": "{{ scanned_host.address[1]['@addr'] | upper }}"
|
||||
},
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
]
|
||||
|
||||
- name: To JSON
|
||||
ansible.builtin.set_fact:
|
||||
subnet_scan_results: "{{ subnet_scan_results | from_yaml }}"
|
||||
|
Reference in New Issue
Block a user