Templates
Ever since I started working as a network engineer, I have always used some kind of network templating system. In my experience, many of the network devices have sections of the network configuration that are identical, especially if these devices serve the same role in the network.
Most of the time, when we need to provision a new device, we use the same configuration in the form of a template, replace the necessary fields, and copy the file over to the new device. With Ansible, you can automate all of the work by using the template module (http://docs.ansible.com/ansible/template_module.html).
The base template file we are using utilizes the Jinja2 template language (http://jinja.pocoo.org/docs/). We briefly discussed the Jinja2 templating language in Chapter 4, The Python Automation Framework – Ansible Basics, and we will look at it a bit more here. Just like Ansible, Jinja2 has its own syntax and method of doing loops and conditionals; fortunately, we just...