79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
# HPE 1810 switch scraper — cheat sheet
|
|
|
|
## Innan du kör något
|
|
|
|
```bash
|
|
source ~/code/venvs/hpe/bin/activate
|
|
cd ~/code/experiments/hpe
|
|
```
|
|
|
|
Alla kommandon nedan behöver `NO_PROXY` satt (annars går trafiken via er proxy och 502:ar):
|
|
|
|
```bash
|
|
export NO_PROXY=192.168.2.10
|
|
```
|
|
|
|
(sätt den en gång per terminal-session, eller lägg i `~/.zshrc`)
|
|
|
|
**Stäng switchens webb-UI i webbläsaren** innan du kör skript — den tillåter bara en inloggad session åt gången.
|
|
|
|
## Konfiguration (`config.py`)
|
|
|
|
Läses från miljövariabler, med defaults för dagens switch:
|
|
|
|
```bash
|
|
export SWITCH_HOST=192.168.2.10 # default
|
|
export SWITCH_HTTPS=false # default; sätt till "true" om switchen kräver HTTPS
|
|
export SWITCH_PASSWORD="" # default (ingen); sätt om switchen får ett lösenord
|
|
```
|
|
|
|
Bara sätta de du behöver ändra — resten faller tillbaka på nuvarande värden.
|
|
|
|
## Köra en extraktor
|
|
|
|
```bash
|
|
python -m extractors.port_summary
|
|
python -m extractors.system_description
|
|
python -m extractors.network_setup
|
|
python -m extractors.buffered_log
|
|
python -m extractors.lldp_statistics
|
|
python -m extractors.log_configuration
|
|
python -m extractors.backup_manager
|
|
```
|
|
|
|
Var och en loggar in (eller återanvänder cachad session), hämtar, skriver ut, och flaggar sig som "Implemented" i `TODO.md`.
|
|
|
|
## Kombinera flera i eget skript
|
|
|
|
```python
|
|
import switch_client
|
|
from extractors.port_summary import get_port_summary
|
|
|
|
session = switch_client.get_session()
|
|
ports = get_port_summary(session)
|
|
```
|
|
|
|
Logga in **en gång**, återanvänd `session` för alla anrop.
|
|
|
|
## Menyupptäckt / TODO.md
|
|
|
|
```bash
|
|
python discover.py # skanna om menyn, uppdatera TODO.md
|
|
python discover.py --dump-html ./out # + spara rå HTML för felsökning
|
|
```
|
|
|
|
Fyll i `y` i "Want it?"-kolumnen i `TODO.md` för sidor du vill ha en extraktor för.
|
|
|
|
## Felsökning
|
|
|
|
| Symptom | Orsak | Åtgärd |
|
|
|---|---|---|
|
|
| `RuntimeError: Login failed...` | Webb-UI:t öppet i en flik, eller nyss inloggad från annan process | Stäng fliken / vänta ~5 min (session-timeout) |
|
|
| `502 Bad Gateway` | Proxy fångar trafiken | `export NO_PROXY=192.168.2.10` |
|
|
| Vill tvinga ny inloggning | Cachad session krånglar | `switch_client.get_session(force_login=True)` |
|
|
| Rensa cachad session helt | — | `rm .session_cookie` |
|
|
|
|
## Lägga till en ny extraktor
|
|
|
|
Alla sidor delar samma HTML-mönster — kolla `extractors/xe_page.py`. Kopiera en befintlig extraktor (t.ex. `system_description.py`), byt `PATH` och tabellnamnet i `tables["..."]`.
|