Technology
Integrate your System Landscape into neops
We won the tender to design, build and operate the network for a major international football event. In order to keep the price low we decided to automate as many tasks as possible using neops. This includes zero-touch provisioning of the devices on premise, enrolling ratecard services with a touch of a button and many other tasks.
Most of such tasks require additional information like subnet information from the IP address management (IPAM), hostnames and assigned management IPs from the data center infrastructure management (DCIM) tool or provides information to the network management system(NMS) such that those devices and services are monitored as soon as they are up and running.
Since neops provides full end to end automation, such 3rd party systems need to be integrated into the automation processes. For this purpose neops uses so-called providers. With a provider you can gather data from those systems and store them as facts. Those facts can then be used as a source of information to perform your configuration tasks on the systems.
In our current project, we are using Micetro by Men&Mice as our DDI and netbox as our DCIM. Both systems provide a RESTAPI to interact with them, and neops is capable to connect to those APIs using the mentioned provider.
The already built-in GenericRestFactsProvider provides basic functionality, but in our case we required some additional features, specific to each API. Therefore, I created my own implementations tailored to the underlying system.
Since the provider are python functions, it is very easy to implement such additional providers. Starting from the built-in provider as an example, I was able to copy and extend the code and add the required features within a couple of days. With the new providers, it was possible to use the specific filter functions of the APIs to gather exactly the data we need for our facts.
Furthermore, additional providers were created to not only read from, but also write to those systems.
Those new providers enabled us that during the zero-touch provisioning process neops can fetch the hostnames and IP address configuration from our DCIM, update the rollout-state of the device and create the DNS entry after the staging of the device is done. All within a single task which can be executed by the rollout-engineer on premises soon as the device is racked and connected! After a short time the device is configured, registered and monitored automatically.
There are many other use cases which could be shown for this ongoing project, and I am sure man others will be implemented during our journey. But with the help of neops I am confident that we are able to manage every challenge waiting for us.