Interview Infrastructure as Code (Terraform, Ansible)

What is a playbook, a play, and a task?

Infrastructure as Code (Terraform, Ansible) · Intermediate level

Answer

A playbook is a YAML file containing one or more plays. A play maps hosts to roles or tasks. A task calls a module with arguments to enforce one piece of desired state, such as installing a package, rendering a template, or restarting a service.

Technical explanation

A play targets hosts and defines how to execute against them.

Tasks are executed in order unless strategies or async behavior alter execution.

Roles are commonly included from plays to keep playbooks readable.

Prefer idempotent modules over shell so repeated runs are safe and change reporting is meaningful.

Separate reusable role logic from inventory-specific variables so the same automation works across environments.

Run lint, syntax checks, check mode where useful, and staged rollouts before production-wide changes.

Hands-on example

1. Create a minimal Ansible control workflow for: What is a playbook, a play, and a task?

2. Inventory example:

[web]

web1 ansible_host=10.0.1.10 ansible_user=ec2-user

web2 ansible_host=10.0.1.11 ansible_user=ec2-user

[web:vars]

ansible_become=true

3. Playbook example:

---

- name: Configure web hosts

hosts: web

become: true

tasks:

- name: Ensure nginx is installed

ansible.builtin.package:

name: nginx

state: present

- name: Ensure nginx is running

ansible.builtin.service:

name: nginx

state: started

enabled: true

4. Run ansible -m ping web first, then ansible-playbook site.yml --check --diff, then the real run.

Preparing for an interview?

Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.

More Infrastructure as Code (Terraform, Ansible) interview questions

← All Infrastructure as Code (Terraform, Ansible) questions