Interview Infrastructure as Code (Terraform, Ansible)

How does Ansible connect to managed hosts?

Infrastructure as Code (Terraform, Ansible) · Intermediate level

Answer

Ansible connects to managed hosts using connection plugins, most commonly SSH for Linux/Unix and WinRM for Windows. Inventory defines the hosts and variables, and Ansible authenticates using SSH keys, passwords, Kerberos, cloud identity, or other supported mechanisms.

Technical explanation

Connection details can be inventory variables such as ansible_host, ansible_user, ansible_port, and ansible_connection.

become enables privilege escalation where tasks need root or administrator rights.

For cloud fleets, dynamic inventory can populate connection metadata automatically.

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: How does Ansible connect to managed hosts?

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