{% extends "base.html" %} {% from "_macros.html" import crumbs %} {% block title %}{{ host.name }} — Hosts — Steward{% endblock %} {% block breadcrumb %}{{ crumbs([("Hosts", "/hosts/"), (host.name, "")]) }}{% endblock %} {% block content %}

{{ host.name }}

{{ host.address or "no address — resolves by name" }}
Edit {% if session.user_role == 'admin' %}
{% endif %}
{# ── Monitors ─────────────────────────────────────────────────────────────── #}

Monitors

Configure →
Ping
{% if not host.ping_enabled %}
off
{% elif ping is none %}
no data yet
{% else %}
{{ ping.status.value }}
{% if ping.response_time_ms is not none %}
{{ '%.0f'|format(ping.response_time_ms) }} ms
{% endif %} {% endif %}
DNS
{% if not host.dns_enabled %}
off
{% elif dns is none %}
no data yet
{% else %}
{{ dns.status.value }}
{% if dns.resolved_ip %}
{{ dns.resolved_ip }}
{% endif %} {% endif %}
Uptime
{% if uptime %}
24h {{ uptime['24h'] if uptime['24h'] is not none else '—' }}{{ '%' if uptime['24h'] is not none }} · 7d {{ uptime['7d'] if uptime['7d'] is not none else '—' }}{{ '%' if uptime['7d'] is not none }} · 30d {{ uptime['30d'] if uptime['30d'] is not none else '—' }}{{ '%' if uptime['30d'] is not none }}
{% else %}
{% endif %}
{# ── Agent (host_agent plugin fragment, embedded across the plugin boundary) ── #}
Loading agent…
{# ── Ansible ──────────────────────────────────────────────────────────────── #}

Ansible

{% if linked_target %}
{{ linked_target.name }} {{ linked_target.address }} {% if linked_target.groups %}
{% for grp in linked_target.groups %} {{ grp.name }} {% endfor %}
{% endif %}
Edit target
{% if ansible_sources %}
Run a playbook against this host
Advanced
{% endif %} {% else %}

No Ansible target linked. A target gives this host an SSH connection so Steward can run playbooks and provision the agent.

{% if linkable_targets %}
{% endif %}
{% endif %}
{% endblock %}