0Pricing
Ansible Academy · Lesson

Architect the Project: Roles & Inventory

Lay out the full deployment repo.

Architect the Project: Roles & Inventory is a free Ansible Academy lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Ansible Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

The Capstone Goal

Time to ship a real multi-tier app with a rolling deploy and zero downtime. First step: design the project layout. 🚀

Think in Roles

Break the system into roles: one per concern like common, web, app, db and loadbalancer. Each is reusable and testable on its own.

The Top-Level Layout

A clean repo keeps inventory, group_vars, roles and a site.yml entry playbook at the root, so anyone can find things fast.

deploy/
  site.yml
  inventory/
  group_vars/
  host_vars/
  roles/

site.yml Ties It Together

Your master playbook site.yml imports per-tier plays in order. It is the single command that deploys the whole stack.

- import_playbook: plays/loadbalancer.yml
- import_playbook: plays/db.yml
- import_playbook: plays/app.yml
- import_playbook: plays/web.yml

Map Tiers to Groups

Your inventory defines a group per tier: lb, db, app and web. Each play targets exactly the hosts it owns.

[lb]
lb1

[web]
web1
web2

[app]
app1
app2

[db]
db1

group_vars per Tier

Store tier settings in group_vars: web ports, app version, db credentials. Hosts inherit them automatically, no copy-paste.

group_vars/web.yml:
  nginx_port: 80
  upstream: app:8080

host_vars for Specials

When one host differs, put overrides in host_vars. The primary db, for example, may carry replication settings the rest lack.

host_vars/db1.yml:
  postgresql_role: primary

Pin the App Version

Make the release version a variable, not a hardcoded string. One change point lets you roll forward or back in seconds.

group_vars/all.yml:
  app_version: "2.4.1"

Separate Environments

Keep inventory folders per environment so staging and production never share hosts. Same roles, different targets.

inventory/
  staging/hosts
  production/hosts

Lock Your Dependencies

List external Galaxy roles in requirements.yml so every teammate and CI run installs the exact same automation code.

roles:
  - name: geerlingguy.nginx
    version: 3.1.4

Architecture First Pays Off

A thoughtful layout turns a scary deploy into a few predictable commands. Structure now saves you firefighting later. 🧱

Quick Check

Let us place one piece of config correctly.

Recap

You designed the repo: roles per tier, inventory groups, group_vars and host_vars, and a site.yml that runs the whole deploy. ✅

Frequently asked questions

Is the “Architect the Project: Roles & Inventory” lesson free?

Yes — the full text of “Architect the Project: Roles & Inventory” is free to read here on the web, and the Ansible Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Ansible Academy course, upgrade to CoddyKit PRO.

What will I learn in “Architect the Project: Roles & Inventory”?

Lay out the full deployment repo. You practise Ansible Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Ansible Academy?

No prior experience is required. Ansible Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Architect the Project: Roles & Inventory” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Ansible Academy lesson?

Yes. Every Ansible Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Architect the Project: Roles & Inventory
  2. Provision, Harden & Bootstrap Hosts
  3. Rolling Deploy Behind the Load Balancer
  4. Smoke Tests, Rollback & Notifications
← Back to Ansible Academy