In all previous chapters of this book, we have used multiple recipes to outline how to perform network validation using Ansible—we have done this by utilizing the different modules available within Ansible. In all of these cases, we performed network validation after pushing the configuration into the network devices. We then collected the network state and validated that it was aligned with our intended state. However, we may want to validate the network state prior to pushing the configuration on the devices. As well as this, it might be necessary to validate that the intended network state is as desired without even touching our network. But how do we do this?
Batfish is an open source project that targets this use case. Its main aim is to provide an offline network validation tool to validate multiple aspects of the network...