Until now, we have only seen how playbooks work and how tasks are executed. We have also seen that Ansible executes all of these tasks sequentially. However, this would not help you while writing an advanced playbook that contains tens of tasks and have to execute only a subset of these tasks. For example, let's say you have a playbook that will install Apache HTTPd server on the remote host. Now, the Apache HTTPd server has a different package name for a Debian-based operating system, and it's called apache2; for a Red Hat-based operating system, it's called httpd.
Having two tasks, one for the httpd package (for Red Hat-based systems) and the other for the apache2 package (for Debian-based systems) in a playbook will make Ansible install both packages, and this execution will fail, as apache2 will not be available if you're installing...