32 lines
679 B
Bash
Executable File
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
|