113 lines
3.0 KiB
YAML
113 lines
3.0 KiB
YAML
---
|
|
|
|
- name: Convert Scan Time to Local Time
|
|
ansible.builtin.set_fact:
|
|
scan_time: |-
|
|
{%- if inbound_data.scan.tz != ('%z' | strftime | string) -%}
|
|
|
|
{%- set adjust_time = scan_address.ipaddress.lastSeen -%}
|
|
|
|
{%- if ('%z' | strftime)[0:1] == '+' -%}
|
|
|
|
{{
|
|
'%Y-%m-%d %H:%M:%S' | strftime(
|
|
(adjust_time | to_datetime).strftime('%s') | int -
|
|
(
|
|
(inbound_data.scan.tz[1:3] | int * 3600) + (inbound_data.scan.tz[3:5] | int * 60)
|
|
) | int
|
|
)
|
|
}}
|
|
|
|
{%- else -%}
|
|
|
|
{{
|
|
'%Y-%m-%d %H:%M:%S' | strftime((adjust_time | to_datetime).strftime('%s') | int +
|
|
(
|
|
(inbound_data.scan.tz[1:3] | int * 3600) + (inbound_data.scan.tz[3:5] | int * 60)
|
|
) | int)
|
|
}}
|
|
|
|
{%- endif -%}
|
|
|
|
{%- else -%}
|
|
|
|
{{ scan_address.ipaddress.lastSeen }}
|
|
|
|
{%- endif %}
|
|
cacheable: false
|
|
|
|
|
|
- name: "Update IP Address' found - {{ scan_address.ipaddress.ip }}"
|
|
community.mysql.mysql_query:
|
|
login_host: "{{ nofusscomputing_phpipam_scan_server.mysql_host }}"
|
|
login_port: "{{ nofusscomputing_phpipam_scan_server.mysql_port | default(3306) | int }}"
|
|
login_user: "{{ nofusscomputing_phpipam_scan_server.mysql_user }}"
|
|
login_password: "{{ nofusscomputing_phpipam_scan_server.mysql_password }}"
|
|
|
|
login_db: 'phpipam'
|
|
query: |-
|
|
{% if
|
|
scan_address.rowcount[0] | int > 0
|
|
%}
|
|
|
|
UPDATE ipaddresses
|
|
SET
|
|
lastSeen = '{{ scan_time }}'
|
|
|
|
{% if scan_address.ipaddress.hostname | default('') != '' %},
|
|
|
|
hostname = '{{ scan_address.ipaddress.hostname }}'
|
|
|
|
{% endif %}
|
|
|
|
{% if scan_address.ipaddress.mac | default('') != '' %},
|
|
|
|
mac = '{{ scan_address.ipaddress.mac }}'
|
|
|
|
{% endif %}
|
|
|
|
WHERE
|
|
id = {{ scan_address.query_result[0][0].id | int }}
|
|
|
|
{% elif
|
|
scan_address.rowcount[0] | int == 0
|
|
%}
|
|
|
|
INSERT INTO ipaddresses
|
|
(
|
|
subnetId,
|
|
ip_addr,
|
|
description,
|
|
{% if scan_address.ipaddress.hostname | default('') != '' %}hostname,{% endif %}
|
|
{% if scan_address.ipaddress.mac | default('') != '' %}mac,{% endif %}
|
|
note,
|
|
lastSeen
|
|
)
|
|
VALUES
|
|
(
|
|
{{ scan_address.ipaddress.subnetId | int }},
|
|
'{{ scan_address.ipaddress.ip | ip2ipam }}',
|
|
'-- autodiscovered --',
|
|
|
|
{% if scan_address.ipaddress.hostname | default('') != '' %}
|
|
|
|
'{{ scan_address.ipaddress.hostname }}',
|
|
|
|
{% endif %}
|
|
|
|
{% if scan_address.ipaddress.mac | default('') != '' %}
|
|
|
|
'{{ scan_address.ipaddress.mac }}',
|
|
|
|
{% endif %}
|
|
|
|
'This host was autodiscovered on {{ scan_address.ipaddress.lastSeen }}',
|
|
'{{ scan_address.ipaddress.lastSeen }}'
|
|
)
|
|
|
|
{% endif %}
|
|
|
|
single_transaction: true
|
|
when: >
|
|
scan_address.ipaddress.subnetId | int in agent_subnets
|