Cross-platform support

As we have seen throughout this book, Ansible has been designed to make automation code portable and reusable in as many scenarios as possible. In our chapter on infrastructure management, we used almost identical playbooks to configure infrastructure on four different providers, and the examples that were given were quite simplistic; we could have improved this further through the use of roles to remove the repetition of so much code.

In short, Ansible made it possible to write playbooks that ran on multiple environments to achieve exactly the same thing with minimal effort once we had defined the first one. The same is true of networks; if you visit the network modules index in the Ansible documentation (see https://docs.ansible.com/ansible/latest/modules/list_of_network_modules.html?highlight=modules), you will find support for over 50 system types, and this grows with every release. 

With such a wide (and growing) range of device support, it is easy for a network administrator to manage all of their devices from one central place, without the need for proprietary tools. However, the benefits are greater than just this.