{%- for key, text, href in items %}
diff --git a/steward/templates/ansible/index.html b/steward/templates/ansible/index.html
index f240163..daae384 100644
--- a/steward/templates/ansible/index.html
+++ b/steward/templates/ansible/index.html
@@ -5,8 +5,8 @@
{% from "_macros.html" import page_header %}
{% from "ansible/_tabs.html" import ansible_tabs %}
{% block title %}Ansible Runs — Steward{% endblock %}
+{% block section_tabs %}{{ ansible_tabs("runs") }}{% endblock %}
{% block content %}
-{{ ansible_tabs("runs") }}
{% call page_header("Ansible Runs") %}
Run a playbook
{% endcall %}
diff --git a/steward/templates/ansible/inventory/group_detail.html b/steward/templates/ansible/inventory/group_detail.html
index 430a662..b7086b9 100644
--- a/steward/templates/ansible/inventory/group_detail.html
+++ b/steward/templates/ansible/inventory/group_detail.html
@@ -6,9 +6,9 @@
{% from "ansible/_tabs.html" import ansible_tabs %}
{% block title %}{{ group.name }} — Inventory — Steward{% endblock %}
{% block breadcrumb %}{{ crumbs([("Ansible", "/ansible/"), ("Inventory", "/ansible/inventory/"), (group.name, "")]) }}{% endblock %}
+{% block section_tabs %}{{ ansible_tabs("inventory") }}{% endblock %}
{% block content %}
{% set can_edit = session.user_role in ('operator', 'admin') %}
-{{ ansible_tabs("inventory") }}
{{ page_header(group.name) }}
{#- The name a play uses for it (#5334): Ansible takes only letters, digits and _. #}
diff --git a/steward/templates/ansible/inventory/index.html b/steward/templates/ansible/inventory/index.html
index 53e711d..164f0d7 100644
--- a/steward/templates/ansible/inventory/index.html
+++ b/steward/templates/ansible/inventory/index.html
@@ -8,9 +8,9 @@
{% from "ansible/_tabs.html" import ansible_tabs %}
{% block title %}Ansible Inventory — Steward{% endblock %}
{% block breadcrumb %}{{ crumbs([("Ansible", "/ansible/"), ("Inventory", "")]) }}{% endblock %}
+{% block section_tabs %}{{ ansible_tabs("inventory") }}{% endblock %}
{% block content %}
{% set can_edit = session.user_role in ('operator', 'admin') %}
-{{ ansible_tabs("inventory") }}
{% call page_header("Inventory") %}
{% if can_edit %}
Add group
diff --git a/steward/templates/ansible/inventory/target_detail.html b/steward/templates/ansible/inventory/target_detail.html
index 4add064..a372b8c 100644
--- a/steward/templates/ansible/inventory/target_detail.html
+++ b/steward/templates/ansible/inventory/target_detail.html
@@ -7,9 +7,9 @@
{% from "ansible/_tabs.html" import ansible_tabs %}
{% block title %}{{ target.name }} — Inventory — Steward{% endblock %}
{% block breadcrumb %}{{ crumbs([("Ansible", "/ansible/"), ("Inventory", "/ansible/inventory/"), (target.name, "")]) }}{% endblock %}
+{% block section_tabs %}{{ ansible_tabs("inventory") }}{% endblock %}
{% block content %}
{% set can_edit = session.user_role in ('operator', 'admin') %}
-{{ ansible_tabs("inventory") }}
{{ page_header(target.name) }}
diff --git a/steward/templates/ansible/playbook.html b/steward/templates/ansible/playbook.html
index dd5643a..9a8389d 100644
--- a/steward/templates/ansible/playbook.html
+++ b/steward/templates/ansible/playbook.html
@@ -7,9 +7,9 @@
{% from "ansible/_macros.html" import interval_words %}
{% block title %}{{ playbook_path }} — Steward{% endblock %}
{% block breadcrumb %}{{ crumbs([("Ansible", "/ansible/"), ("Playbooks", "/ansible/playbooks"), (playbook_path, "")]) }}{% endblock %}
+{% block section_tabs %}{{ ansible_tabs("playbooks") }}{% endblock %}
{% block content %}
{% set can_run = session.user_role in ('operator', 'admin') %}
-{{ ansible_tabs("playbooks") }}
{% call page_header(playbook_path) %}
{% if editable and session.user_role == 'admin' %}
Edit
diff --git a/steward/templates/ansible/playbook_editor.html b/steward/templates/ansible/playbook_editor.html
index 9ed8a2c..1aec921 100644
--- a/steward/templates/ansible/playbook_editor.html
+++ b/steward/templates/ansible/playbook_editor.html
@@ -3,8 +3,8 @@
{% from "_macros.html" import crumbs %}
{% block title %}{{ "Edit" if editing else "New" }} Playbook — Steward{% endblock %}
{% block breadcrumb %}{{ crumbs([("Ansible", "/ansible/"), ("Playbooks", "/ansible/playbooks"), (("Edit " ~ playbook_path) if editing else "New playbook", "")]) }}{% endblock %}
+{% block section_tabs %}{{ ansible_tabs("playbooks") }}{% endblock %}
{% block content %}
-{{ ansible_tabs("playbooks") }}
{{ "Edit playbook" if editing else "New playbook" }}
diff --git a/steward/templates/ansible/playbooks.html b/steward/templates/ansible/playbooks.html
index 04bad08..740f187 100644
--- a/steward/templates/ansible/playbooks.html
+++ b/steward/templates/ansible/playbooks.html
@@ -7,8 +7,8 @@
{% from "ansible/_tabs.html" import ansible_tabs %}
{% block title %}Playbooks — Steward{% endblock %}
{% block breadcrumb %}{{ crumbs([("Ansible", "/ansible/"), ("Playbooks", "")]) }}{% endblock %}
+{% block section_tabs %}{{ ansible_tabs("playbooks") }}{% endblock %}
{% block content %}
-{{ ansible_tabs("playbooks") }}
{% call page_header("Playbooks") %}
{% if can_add %}New playbook {% endif %}
{% endcall %}
diff --git a/steward/templates/ansible/run_detail.html b/steward/templates/ansible/run_detail.html
index ba1c9e7..270e604 100644
--- a/steward/templates/ansible/run_detail.html
+++ b/steward/templates/ansible/run_detail.html
@@ -9,8 +9,8 @@
{% macro words(parts) -%}
{% for text, tone in parts %}{% if not loop.first %} · {% endif %}{% if tone %}{{ text }} {% else %}{{ text }}{% endif %}{% endfor %}
{%- endmacro %}
+{% block section_tabs %}{{ ansible_tabs("runs") }}{% endblock %}
{% block content %}
-{{ ansible_tabs("runs") }}
{% call page_header(row.title) %}
{% if run.status.value in ("running", "queued") and session.user_role in ("operator", "admin") %}