ansible/inventory/ansible_nb_device.sh

20 lines
745 B
Bash
Raw Normal View History

#! /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 {device_list(status: \"active\", name__n: \"null\" ) {name site {name} platform {name} device_type{ manufacturer {name} } role {name} primary_ip4 {address} primary_ip6 {address} }}"
}' | jq -r '
([
.data[][] | { (.name): {
netbox_platform: .platform.name,
netbox_role: .device_role.name,
netbox_primary_ip4: .primary_ip4,
netbox_primary_ip6: .primary_ip6,
}}
] | add ) as $hostvars |
[([
.data[] | group_by(.site.name) | .[] | {
key: ([.[].site.name]|unique)[0],
value: {hosts:[(.[].name)]}}
] | from_entries, {_meta: {hostvars: $hostvars}})] | add
'