Files
netbox-scripts/netbox-dhcp.sh
2021-05-15 17:35:16 +01:00

37 lines
773 B
Bash
Executable File

#!/bin/sh
. ./config.sh
do_curl() {
curl -s -k -H "Authorization: Token ${TOKEN}" -X GET $1
}
cat<<EOF
# generated by $0 at $(date)
option domain-name "home.paler.net";
max-lease-time 600;
default-lease-time 600;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
range 192.168.1.100 192.168.1.200;
EOF
do_curl "https://${NETBOX}/api/ipam/ip-addresses/" | \
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')
cat<<EOF
host $name {
fixed-address ${ip};
hardware ethernet ${mac};
}
EOF
done
echo "}"