The Ansible include and roles
The best way to handle complex tasks is to break them down into smaller pieces. Of course, this approach is common in both Python and network engineering. 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 data centers. In Ansible, we can use 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 the files focuses on fewer tasks. It also allows sections of the playbook to be reused.
The Ansible include statement
As the playbook grows in size, it will eventually become obvious that many of the tasks and plays can be shared across different playbooks. The Ansible include
statement is similar to many Linux configuration files in that it just tells the machine to extend the file the same way as if the file was directly written...