Working with conditionals
Until now, we have only seen how playbooks work and how tasks are executed. We also saw that Ansible executes all 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 on a Red-Hat-based operating system. To overcome such problems, Ansible provides conditional statements that help run a task only when a...