22 lines
739 B
Bash
22 lines
739 B
Bash
|
#! /bin/sh
|
||
|
NB_TOKEN=$(bw get password "Netbox RO token")
|
||
|
curl -Ss -H "Authorization: Token ${NB_TOKEN}" https://netbox.niet.verweg.com/graphql/ --json '{
|
||
|
"query": "query {virtual_machine_list(status: \"active\", ) {name vcpus disk memory cluster {name} role {name} primary_ip4 {address} primary_ip6 {address} }}"
|
||
|
}' | jq -r '
|
||
|
([
|
||
|
.data[][] | { (.name): {
|
||
|
netbox_vcpus: .vcpus,
|
||
|
netbox_disk: .disk,
|
||
|
netbox_memory: .memory,
|
||
|
netbox_role: .role.name,
|
||
|
netbox_primary_ip4: .primary_ip4,
|
||
|
netbox_primary_ip6: .primary_ip6,
|
||
|
}}
|
||
|
] | add ) as $hostvars |
|
||
|
[([
|
||
|
.data[] | group_by(.cluster.name) | .[] | {
|
||
|
key: ([.[].cluster.name]|unique)[0],
|
||
|
value: {hosts:[(.[].name)]}}
|
||
|
] | from_entries, {_meta: {hostvars: $hostvars}})] | add
|
||
|
'
|