On Thursday, 22 October 2020 08:51:39 UTC+1, Barry Awure wrote:
What I really want to accomplish is to set up a system that can help me automate my network, handle IP and VLAN allocation, and dynamic configuration to my end devices, reducing human involvement in client provisioning.
It sounds like you are provisioning "outbound": pushing configs to new devices. If so, a source-of-truth database would be a very good core for that. The database tells you how the devices *should* be configured, and then you push that configuration outwards torwards the devices.
That's different to documenting the configuration as-is. That would involve pulling the configuration *from* the devices and recording it. And a device-discovery tool is no good for provisioning fresh devices, since all it can tell you is the blank configuration the device has, not the configuration it *should* have.
I have looked into ansible for autoconfiguration,
I need an application that can work with ansible to allocate IPs and VLANs to clients automatically
You can use the Netbox API to request IPs to allocate to devices. Your workflow could then be something like:
- add a device (which you can do via the API too)
- call the API to allocate an IP address
- generate a configuration and push it out to the device
That's the workflow you have to write yourself, because it's very specific to your own organization and processes. You can use Netbox as the underlying source-of-truth database, and also as the GUI that people use to view and update that data.
and also discover my present network for already allocated IPs so we don't have duplicate IPs.
That's a question of setting Netbox to the current state of your network. You can populate that through the API too if you wish, but it's up to you to collect and sanitise the data; Netbox doesn't know what data is good (things as they should be) and what data is bad (things on your network that shouldn't be there).
You might want to do more than just recording IPs to avoid duplicates. You may want to associate IPs to devices and virtual machines. To do that in Netbox, you have to create the associations:
Device ----------< Interface ----< IP Address
VirtualMachine --< VMInterface --< IP Address
But you don't have to; you can use Netbox as an IPAM and nothing else, if you choose.