53
playbooks/tasks/server/ipaddress.yaml
Normal file
53
playbooks/tasks/server/ipaddress.yaml
Normal file
@ -0,0 +1,53 @@
|
||||
---
|
||||
|
||||
|
||||
- name: Update IP Address' found
|
||||
community.mysql.mysql_query:
|
||||
login_host: "{{ nfc_c_mysql_host }}"
|
||||
login_port: "{{ nfc_c_mysql_port | default(3306) | int }}"
|
||||
login_user: "{{ nfc_c_mysql_user }}"
|
||||
login_password: "{{ nfc_c_mysql_password }}"
|
||||
|
||||
login_db: 'phpipam'
|
||||
query: |-
|
||||
{% if
|
||||
scan_address.rowcount[0] | int > 0
|
||||
%}
|
||||
|
||||
UPDATE ipaddresses
|
||||
SET
|
||||
lastSeen = '{{ scan_address.ipaddress.lastSeen }}',
|
||||
|
||||
{% if scan_address.ipaddress.mac != '' %}
|
||||
|
||||
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
|
||||
VALUES
|
||||
subnetId = {{ scan_address.ipaddress.subnetId | int }},
|
||||
ip_addr = '{{ scan_address.ipaddress.ip | ip2ipam }}',
|
||||
description = '-- autodiscovered --',
|
||||
|
||||
{% if scan_address.ipaddress.mac != '' %}
|
||||
|
||||
mac = '{{ scan_address.ipaddress.mac }}',
|
||||
|
||||
{% endif %}
|
||||
|
||||
note = 'This host was autodiscovered on {{ scan_address.ipaddress.lastSeen }}',
|
||||
lastSeen = '{{ scan_address.ipaddress.lastSeen }}',
|
||||
|
||||
{% endif %}
|
||||
|
||||
single_transaction: true
|
||||
when: >
|
||||
scan_address.ipaddress.subnetId | int in agent_subnets
|
33
playbooks/tasks/server/subnet_scan.yaml
Normal file
33
playbooks/tasks/server/subnet_scan.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
|
||||
|
||||
- name: Match Scan Addresses to DB Details
|
||||
community.mysql.mysql_query:
|
||||
login_host: "{{ nfc_c_mysql_host }}"
|
||||
login_port: "{{ nfc_c_mysql_port | default(3306) | int }}"
|
||||
login_user: "{{ nfc_c_mysql_user }}"
|
||||
login_password: "{{ nfc_c_mysql_password }}"
|
||||
|
||||
login_db: 'phpipam'
|
||||
query: |-
|
||||
SELECT
|
||||
id, description, state, note, lastSeen
|
||||
FROM ipaddresses
|
||||
WHERE
|
||||
id='{{ ipaddress.id }}'
|
||||
AND
|
||||
ip_addr='{{ ipaddress.ip | ip2ipam }}'
|
||||
single_transaction: true
|
||||
register: mysql_query_find_ipaddress
|
||||
loop: "{{ scan_result.results }}"
|
||||
loop_control:
|
||||
loop_var: ipaddress
|
||||
|
||||
|
||||
- name: Update IP Addresses
|
||||
ansible.builtin.include_tasks:
|
||||
file: tasks/server/ipaddress.yaml
|
||||
loop: "{{ mysql_query_find_ipaddress.results }}"
|
||||
loop_control:
|
||||
loop_var: scan_address
|
||||
label: "{{ scan_address }}"
|
Reference in New Issue
Block a user