Inventory sanity checks

This commit is contained in:
2025-04-15 13:59:53 -05:00
parent 7962727fb3
commit 5089c82710
2 changed files with 86 additions and 30 deletions

View File

@@ -46,7 +46,7 @@ all:
Chappaai: Chappaai:
ipinterface: eth0 ipinterface: eth0
ip: 10.0.1.2 ip: 10.0.1.2
mac: B8:27:EB:B6:AA:0C mac: e4:5f:01:01:ff:9b
static: true static: true
children: children:
Node: Node:
@@ -54,7 +54,7 @@ all:
Node1: Node1:
ipinterface: enp1s0 ipinterface: enp1s0
ip: 10.0.1.5 ip: 10.0.1.5
mac: FA:EC:43:87:4D:2D mac: fa:ec:43:87:4d:2d
tap: true tap: true
ups: 'aps' ups: 'aps'
active_vms: active_vms:
@@ -72,7 +72,7 @@ all:
Node3: Node3:
ipinterface: enp1s0 ipinterface: enp1s0
ip: 10.0.1.8 ip: 10.0.1.8
mac: B2:C6:2C:02:B2:6E mac: b2:c6:2c:02:b2:6e
tap: true tap: true
active_vms: active_vms:
- TDS-Jump - TDS-Jump
@@ -81,33 +81,33 @@ all:
Geth0: Geth0:
ipinterface: eth0 ipinterface: eth0
ip: 10.0.1.9 ip: 10.0.1.9
mac: 84:16:F9:14:15:C5 mac: b8:27:eb:09:a1:a0
static: true static: true
k3s_primary: true k3s_primary: true
Geth1: Geth1:
ipinterface: eth0 ipinterface: eth0
ip: 10.0.1.10 ip: 10.0.1.10
mac: E4:5F:01:01:FF:9C mac: e4:5f:01:01:ff:9c
static: true static: true
Geth2: Geth2:
ipinterface: eth0 ipinterface: eth0
ip: 10.0.1.11 ip: 10.0.1.11
mac: E4:5F:01:01:FF:D5 mac: e4:5f:01:01:ff:d5
static: true static: true
Geth3: Geth3:
ipinterface: eth0 ipinterface: eth0
ip: 10.0.1.12 ip: 10.0.1.12
mac: E4:5F:01:01:FF:96 mac: e4:5f:01:01:ff:96
static: true static: true
Geth4: Geth4:
ipinterface: eth0 ipinterface: eth0
ip: 10.0.1.13 ip: 10.0.1.13
mac: E4:5F:01:01:FF:E4 mac: e4:5f:01:01:ff:e4
static: true static: true
Geth5: Geth5:
ipinterface: eth0 ipinterface: eth0
ip: 10.0.1.14 ip: 10.0.1.14
mac: B8:27:EB:B6:AA:0D mac: b8:27:eb:81:f5:4b
static: true static: true
virtual: # 10.0.1.16/28 virtual: # 10.0.1.16/28
vars: vars:
@@ -115,7 +115,7 @@ all:
Sharingan: Sharingan:
ip: 10.0.1.16 ip: 10.0.1.16
ipinterface: ens3 ipinterface: ens3
mac: 00:15:5D:01:02:10 mac: 00:15:5d:01:02:10
cores: 4 cores: 4
memory: 4 memory: 4
vnc: 8 vnc: 8
@@ -129,7 +129,7 @@ all:
DarkNet: DarkNet:
ipinterface: ens3 ipinterface: ens3
ip: 10.0.1.17 ip: 10.0.1.17
mac: 00:15:5D:01:02:05 mac: 00:15:5d:01:02:05
cores: 4 cores: 4
memory: 4 memory: 4
vnc: 9 vnc: 9
@@ -153,12 +153,12 @@ all:
ip: 10.0.1.3 ip: 10.0.1.3
mac: 00:25:90:0d:6e:86 mac: 00:25:90:0d:6e:86
static: true static: true
sslidentity: aninix.net-0001 sslidentity: aninix.net-0002
secdetection: true secdetection: true
iptv_location: "Milwaukee|Madison" iptv_location: "ToonamiAftermathEast.us|TVSClassicMovies.us|UniversalComedy|ABCNewsLive"
aether_source: true aether_source: true
cores: 8 cores: 8
memory: 16 memory: 10
bridge: br0 bridge: br0
vnc: 1 vnc: 1
vscan_enabled: true vscan_enabled: true
@@ -173,12 +173,12 @@ all:
hosts: hosts:
Vergil1: Vergil1:
ip: 10.0.1.32 ip: 10.0.1.32
mac: b8:27:eb:9a:73:dd mac: b8:27:eb:e3:ff:59
rotate: 0 rotate: 0
remote: NS-RC4NA-14 remote: NS-RC4NA-14
Vergil2: Vergil2:
ip: 10.0.1.33 ip: 10.0.1.33
mac: 84:16:F9:13:B6:E6 mac: b8:27:eb:cf:26:88
motion_enabled: no motion_enabled: no
rotate: 180 rotate: 180
remote: NS-RC4NA-14 remote: NS-RC4NA-14
@@ -194,7 +194,7 @@ all:
hosts: hosts:
Superintendent: Superintendent:
ip: 10.0.1.49 ip: 10.0.1.49
mac: DE:8B:9E:19:55:1E mac: de:8b:9e:19:55:1e
cores: 2 cores: 2
memory: 2 memory: 2
vnc: 6 vnc: 6
@@ -271,10 +271,10 @@ all:
mac: 2c:30:33:64:f4:03 mac: 2c:30:33:64:f4:03
Print: # Print is excepted for legacy setup reasons before we laid out subnets. Print: # Print is excepted for legacy setup reasons before we laid out subnets.
ip: 10.0.1.6 ip: 10.0.1.6
mac: 00:80:92:77:CE:E4 mac: 00:80:92:77:ce:e4
Geth-Eyes: Geth-Eyes:
ip: 10.0.1.68 ip: 10.0.1.68
mac: 9C:A3:AA:33:A3:99 mac: 9c:a3:aa:33:a3:99
# "Core-Console": # "Core-Console":
# ip: 10.0.1.74 # ip: 10.0.1.74
# mac: 00:25:90:0D:82:5B # mac: 00:25:90:0D:82:5B
@@ -288,38 +288,42 @@ all:
mac: f4:2b:8c:10:31:44 mac: f4:2b:8c:10:31:44
Lykos: Lykos:
ip: 10.0.1.65 ip: 10.0.1.65
mac: 70:74:14:4F:8E:42 mac: 70:74:14:4f:8e:42
Node0: Node0:
ip: 10.0.1.66 ip: 10.0.1.66
mac: E0:BE:03:77:0E:88 mac: e0:be:03:77:0e:88
LivingRoomTV: LivingRoomTV:
ip: 10.0.1.69 ip: 10.0.1.69
mac: 80:D2:1D:17:63:0E mac: 80:d2:1d:17:63:0e
BedRoomTV: BedRoomTV:
ip: 10.0.1.70 ip: 10.0.1.70
mac: 80:D2:1D:17:63:0F mac: a4:77:33:4c:2a:44
TrainingRoomTV: TrainingRoomTV:
ip: 10.0.1.71 ip: 10.0.1.71
mac: 80:D2:1D:17:63:10 mac: 80:d2:1d:17:63:10
BT: BT:
ip: 10.0.1.72 ip: 10.0.1.72
mac: 8A:00:AA:7F:DF:D1 mac: 8a:00:aa:7f:df:d1
DedSec: DedSec:
ip: 10.0.1.73 ip: 10.0.1.73
mac: 34:F6:4B:36:12:8F mac: d4:e9:8a:7d:79:b3
# dhcp build space: 10.0.1.224/27 # dhcp build space: 10.0.1.224/27
iot: # 10.0.2.0/24 iot: # 10.0.2.0/24
hosts: hosts:
# Nest Thermostat
LivingRoomRegulator: LivingRoomRegulator:
ip: 10.0.2.2 ip: 10.0.2.2
mac: 64:16:66:08:57:F5 mac: 64:16:66:08:57:f5
# Nest Protect
Monitor: Monitor:
ip: 10.0.2.3 ip: 10.0.2.3
mac: 18:B4:30:2F:F1:37 mac: 18:b4:30:2f:f1:37
# Chamberlain My-Q
Gatekeeper: Gatekeeper:
ip: 10.0.2.4 ip: 10.0.2.4
mac: 64:52:99:14:28:2B mac: 64:52:99:14:28:2b
# CaretakerAlpha has no network # CaretakerAlpha has no network
# iRobot Roomba
CaretakerBravo: CaretakerBravo:
ip: 10.0.2.5 ip: 10.0.2.5
mac: 40:9F:38:95:06:34 mac: 40:9f:38:95:06:34

View File

@@ -0,0 +1,52 @@
---
- hosts: "{{ targets | default('managed') }}"
become: true
tasks:
- name: Verify IP
ignore_errors: true
register: status
assert:
that:
- "ip in ansible_default_ipv4.address"
- debug:
msg: "Inventory IP {{ ip }} for {{ inventory_hostname }} doesn't match configured {{ ansible_default_ipv4.address }}"
when: status.failed
- name: Verify MAC
ignore_errors: true
register: status
assert:
that:
- "mac in ansible_default_ipv4.macaddress"
- debug:
msg: "Inventory MAC {{ mac }} for {{ inventory_hostname }} doesn't match configured {{ ansible_default_ipv4.macaddress }}"
when: status.failed
- name: Verify cores
ignore_errors: true
when: cores is defined
register: corescheck
assert:
that:
- "cores == ansible_processor_cores"
- debug:
msg: "Inventory {{ cores }} cores for {{ inventory_hostname }} doesn't match configured {{ ansible_processor_cores }}"
when: cores is defined and corescheck.failed
- name: Verify memory
ignore_errors: true
register: memcheck
when: memory is defined
assert:
that:
- "memory == (ansible_memtotal_mb - ansible_memtotal_mb % 1000)/ 1000 + 1 " # hasty rounding
- debug:
msg: "Inventory {{ memory }} GB memory for {{ inventory_hostname }} doesn't match configured {{ (ansible_memtotal_mb - ansible_memtotal_mb % 1000)/ 1000 + 1 }} GB"
when: memory is defined and memcheck.failed