The Ansible include and roles
The best way to handle complex tasks is to break it down into smaller pieces. This approach is common in both Python and network engineering, of course. In Python, we break complicated code into functions, classes, modules, and packages. In Networking, we also break large networks into sections such as racks, rows, clusters, and datacenters. In Ansible, uses roles
and includes
to segment and organize a large playbook into multiple files. Breaking up a large Ansible playbook simplifies the structure as each of file focuses on fewer tasks. It also allows the sections of the playbook easier to be reused.
The Ansible include statement
As the playbook grows in size, it will eventually become obvious that many of the tasks and playbooks can be shared across different playbooks. The Ansible include
statement is similar to many Linux configuration files that just tell the machine to extend the file the same way as if the file was directly written in. We can do an include...