# Environment-Variablen (`/etc/environment`)

## Uebersicht

Alle 5 Cluster-Server haben identische Environment-Variablen in `/etc/environment`. Diese werden von systemd-Services (dns-maintenance, newrelic-infra) und Shell-Sessions geladen.

## Variablen

| Variable | Zweck | Genutzt von |
|----------|-------|-------------|
| `PATH` | Standard-Systempfad | System |
| `CF_TOKEN_BUSINESS` | Cloudflare API Token fuer Zone bahn.business | dns-maintenance (drain/restore/peer-check) |
| `CF_TOKEN_SERVICES` | Cloudflare API Token fuer Zone bahn.services | dns-maintenance (drain/restore/peer-check) |
| `NEW_RELIC_LICENSE_KEY` | New Relic Ingest License Key (EU, `eu01` Prefix) | newrelic-infra Agent |
| `ALERT_WEBHOOK_SLACK` | Slack Incoming Webhook URL (Alerts) | dns-maintenance send_alert() |
| `ALERT_WEBHOOK_CANARI` | Canari.me Webhook URL (optional, noch nicht aktiv) | dns-maintenance send_alert() |

## Sicherheit

- **Datei-Permissions:** `644 root:root` (systemd benoetigt Lesezugriff)
- **NIEMALS in Git einchecken** — Werte sind Secrets
- Tokens haben Write-Zugriff auf Cloudflare DNS (Drain/Restore)
- NR License Key erlaubt Daten-Ingest ins New Relic Konto

## Wo referenziert

| Service | Wie geladen |
|---------|------------|
| `dns-maintenance.service` | `EnvironmentFile=/etc/environment` |
| `dns-peer-check.service` | `EnvironmentFile=/etc/environment` |
| `newrelic-infra` | Liest `NEW_RELIC_LICENSE_KEY` direkt aus Environment |
| Shell-Sessions (SSH) | Automatisch via PAM `pam_env` |

## Neuen Token hinzufuegen

```bash
# Auf .2 hinzufuegen:
echo 'NEW_VARIABLE="wert"' >> /etc/environment

# An .3-.6 verteilen:
for ip in 10.0.0.3 10.0.0.4 10.0.0.5 10.0.0.6; do
  rsync -a /etc/environment root@$ip:/etc/environment
done

# Betroffene Services neustarten (neue Session fuer Shell-Zugriff)
```

## Token rotieren

1. Neuen Token im jeweiligen Dienst generieren (Cloudflare Dashboard / New Relic)
2. `/etc/environment` auf .2 aktualisieren
3. An .3-.6 verteilen (rsync)
4. Betroffene Services neustarten: `systemctl restart dns-maintenance newrelic-infra`
5. Alten Token im Dienst widerrufen
