Przejdź do treści
Biblioteka skilli
DevOps i chmura · Testowanie

anta-validation

/anta-validation

Waliduje stan sieci Arista EOS względem katalogu 208 testów ANTA z ustrukturyzowanymi werdyktami, tylko do odczytu, np. przy sprawdzaniu BGP, interfejsów i sprzętu.

Repozytorium
netclaw ↗
Licencja
Apache-2.0
Ostatnia zmiana repozytorium
25.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 25.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co robi i kiedy

Waliduje stan sieci Arista EOS względem katalogu 208 testów ANTA z ustrukturyzowanymi werdyktami, tylko do odczytu, np. przy sprawdzaniu BGP, interfejsów i sprzętu.

Wyzwalacze z opisu

is this switch healthydid my change break anythingverify BGP/interfaces/hardware are correctrun a health check on this devices catalogue doesn
Oryginalny opis (EN)

Validate Arista EOS network state against ANTA's pre-built 208-test catalogue, with structured pass/fail verdicts. Use for "is this switch healthy", "did my change break anything", "verify BGP/interfaces/hardware are correct", "run a health check on this device". Read-only. A test for a feature the device does not run reports not_applicable — never a failure — and no health percentage is ever emitted. For non-Arista devices, or an assertion ANTA's catalogue doesn't cover, use `pyats-dynamic-test` to author a custom aetest script instead.

Jak działa

  1. Which plane answers — read this before reaching for another server
  2. The verdicts — five, and they never merge
  3. Workflow
  4. Reading a result honestly
  5. Credentials and scope
  6. Boundaries
Sekcje z nagłówków SKILL.md, w oryginale · 107 linii, 696 słów
Podgląd SKILL.md
---
name: anta-validation
description: Validate Arista EOS network state against ANTA's pre-built 208-test catalogue, with structured pass/fail verdicts. Use for "is this switch healthy", "did my change break anything", "verify BGP/interfaces/hardware are correct", "run a health check on this device". Read-only. A test for a feature the device does not run reports not_applicable — never a failure — and no health percentage is ever emitted. For non-Arista devices, or an assertion ANTA's catalogue doesn't cover, use `pyats-dynamic-test` to author a custom aetest script instead.
---

# ANTA validation — the assertion layer

Every other NetClaw source **reads** state. This one **asserts** on it and returns a verdict you can
act on.

**Server**: `anta-mcp` (NetClaw-authored over ANTA 1.9.0, Apache-2.0, own virtualenv) · 4 tools ·
1,272 tokens · **208 tests** in the catalogue

## Which plane answers — read this before reaching for another server

Three servers touch Arista. They answer different questions, and picking the wrong one gives a
confidently wrong answer.

| Plane | Server | Answers |
|---|---|---|
| **Validation** | **this skill** | *does the state match what it should be* — pass/fail |
| Management | `arista-cvp-mcp` | *what does CloudVision say* — inventory, tags, compliance as CVP sees it |
| Device CLI | `pyats-*`, `multivendor-cli` | *what is the raw state* — show-command output |

**Use this skill to assert, not to fetch.** If the question is "what is the interface MTU", that is
the CLI plane. If the question is "is the MTU what it should be", that is this one.

## The verdicts — five, and they never merge

| Verdict | Means | Never counts as |
|---|---|---|
| `pass` | tested, expectation held | — |
| `fail` | tested, expectation did not hold | — |
| **`not_applicable`** | **the feature is not configured — nothing was tested** | `fail` |
| `skipped` | ANTA declined to run it | `pass` |
| `error` | device unreachable or the run broke | `fail` |

### `not_applicable` is the one that matters

ANTA natively reports a test for an unconfigured feature as a **failure**. Measured on a lab switch:

```
VerifyBGPPeerCount → failure
  "'show bgp summary vrf all' failed on veos1: BGP inactive"
```

That device has **no BGP at all**. Reporting it as a failure claims a BGP fault where there is no
BGP. The server reclassifies it to `not_applicable` and keeps the original message.

**When you report results**: say "BGP: not applicable — this device does not run BGP", never "BGP
test failed".

### There is no health percentage, and you should not compute one

`passed / total` is meaningless when `not_applicable` and `skipped` sit in the denominator. Forty
tests of which thirty are not applicable is not "25% healthy" — it is ten real answers and thirty
non-answers. The server **refuses** to emit a percentage. Report the five counts.

## Workflow

**1. Find the tests** (contacts no device):

```
anta_list_tests: category="routing.bgp"        # or keyword="ntp", or both
```

**2. Learn what a test needs** (contacts no device):

```
anta_describe_test: test="VerifyEOSVersion"    # returns its input schema
```

Do this whenever a test takes inputs. A test run without required inputs is reported as `skipped`
with the requirements listed — it does **not** guess a default and silently test the wrong thing.

**3. Run them**:

```
anta_run_tests:
  host: "172.20.20.4"
  tests: ["VerifyEOSVersion", "VerifyUptime", "VerifyNTP"]
  inputs: {"VerifyEOSVersion": {"versions": ["4.36.1F"]}, "VerifyUptime": {"minimum": 3600}}
```

Or by category: `category: "hardware"`.

## Reading a result honestly

- **An unreachable device returns `error` with zero results.** It is not a broken device — nothing
  was tested. Say "could not reach the device", never "the device failed its tests".
- **An empty selection returns `no_tests_selected`.** No test matched. That is not a healthy device.
- **A `fail` names observed and expected.** Quote both — "NTP expected synchronised, actual
  unsynchronised" is actionable; "NTP test failed" is not.

## Credentials and scope

`ANTA_USERNAME` / `ANTA_PASSWORD` come from the environment and are **never** tool arguments and
never appear in output. `ANTA_VERIFY_TLS` defaults to `true` and verifies both certificate trust and hostname.
For private PKI set `ANTA_CA_BUNDLE` to a trusted PEM bundle.
An explicit `false` lab override is disclosed as `tls_verified=false`; it does not disable SSH host-key checks.
See `docs/INTEGRATION-TLS-MIGRATION.md` for migration.

## Boundaries

- **EOS only.** ANTA is Arista's framework. This is not multivendor validation, and it must not be
  described as such.
- **Read-only.** ANTA tests; it does not configure. There is no remediation path here — if a test
  fails, fixing it goes through the normal change process with its CR gating.
- **On demand.** This is not continuous monitoring. For "what was it doing over time", use
  `zabbix-metrics-history`.

Wersje

W bazie nie ma innych skilli o nazwie anta-validation.

Identyczna treść występuje jeszcze w 1 innych folderach na GitHubie. Tu pokazujemy jedną, najlepiej ocenioną kopię.

Migawka bazy z 28.10.2026 · wersja paczki cec9cf1dc6e2 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 98pyats-dynamic-test
    Pisze i uruchamia deterministyczne skrypty pyATS do sprawdzania stanu sieci: interfejsy, sąsiedztwa OSPF, ścieżki BGP i testy zgodności.
  • 100arista-device-health
    Prowadzi kontrolę kondycji i triage przełączników Arista EOS serii 7000, 7500 i 720X: CPU, pamięć, interfejsy, środowisko, agenty oraz stan MLAG i VXLAN/EVPN.
  • 100arista-eos
    Obejmuje Arista EOS we wszystkich wersjach: architekturę Sysdb, projekt fabryki VXLAN/EVPN, MLAG, eAPI, CloudVision, automatyzację AVD, projekt BGP spine-leaf i operacje fabryki centrum danych.
  • 100ansible-network
    Obejmuje automatyzację sieci w Ansible: kolekcje cisco.ios, arista.eos i junos, moduły zasobów, wtyczki połączeń, szablony Jinja2, projekt inwentarza, kopie konfiguracji i wzorce playbooków.
  • 100pyats-network
    Automatyzuje urządzenia sieciowe Cisco IOS-XE i NX-OS przez pyATS: polecenia show, ping, zmiany konfiguracji, odczyt konfiguracji i logów, lista urządzeń i polecenia Linux.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.