Files
netbox-scripts/netbox-dhcp.sh

32 lines
679 B
Bash
Executable File

#!/bin/sh
. ./config.sh
do_curl() {
curl -s -k -H "Authorization: Token ${TOKEN}" -X GET $1
}
echo "# generated by $0 at $(date)"
echo
cat dhcpd.conf.head
do_curl "https://${NETBOX}/api/ipam/ip-addresses/?limit=10000" | \
jq -r '.results[] | .assigned_object.device.name + .assigned_object.virtual_machine.name + " " + (.address / "/")[0] + " " + .assigned_object.url' |
while read name ip owner
do
mac=$(do_curl $owner | jq -r '.mac_address')
if [[ $name == comfoconnect ]] then
extra="max-lease-time 864000; default-lease-time 864000;"
else
extra=""
fi
cat<<EOF
host $name {
fixed-address ${ip};
hardware ethernet ${mac};
${extra}
}
EOF
done