Abnahmekriterien für die Produktion
Diese Seite enthält eine Checkliste, mit der Installationsverantwortliche und das Betriebsteam auf Basis derselben Kriterien entscheiden können, ob ein System „betriebsbereit“ ist. Die Installation gilt erst dann als abgeschlossen, wenn nicht nur der Dienst einmal gestartet wurde, sondern alle Nachweise für Neustart, Backup, Health, Sicherheit und Abnahme vorliegen.
1. Go / No-Go-Kriterien
| Kategorie | Go-Kriterium | No-Go |
|---|---|---|
| Deployment-Modus | plantpulse-edge.service verwaltet die Container | Dienst ist nicht registriert |
| systemd | plantpulse-edge.service active + enabled | active, aber nicht enabled, oder Restart-Loop |
| Health | /api/v1/system/health HTTP 200 + components UP | HTTP 503, component DOWN, anhaltende Antwortverzögerung |
| Version | Aufzeichnung von image_tag / build_date in /api/v1/system/version | Tag nicht bestätigt, Start mit veraltetem Image |
| Netzwerk | Erreichbarkeit von WAN, PLC NIC, DNS/NTP und Platform API bestätigt | PLC-Netz besitzt Default-Route, NTP nicht synchronisiert |
| Sicherheit | /etc/kopens/credentials.txt root 0600, Änderung des initialen Admin-Passworts abgeschlossen | Standard-/gemeinsame Passwörter beibehalten, kein Nachweis über Übergabe der Anmeldedaten |
| Backup | backup.sh einmalig erfolgreich + .sha256 vorhanden | Backup nicht ausgeführt, Backup existiert nur auf derselben Disk |
| Wiederherstellbarkeit | doctor.sh oder Erstellung eines Acceptance-Logs | Keine Nachweise für die Übergabe im Fehlerfall |
Falls auch nur ein Punkt ein «No-Go» ist, darf das System nicht in den Betrieb überführt werden. Folgen Sie stattdessen der Fehlerbehebung bei der Installation oder dem Eskalationsverfahren für den Container-Modus-Betrieb.
2. Vorab-Zustimmung vor Installation
Werte, die das Betriebsteam vor der Installation prüfen muss:
| Punkt | Beispiel |
|---|---|
EDGE_ID | EDGE_00303 |
SITE_ID | SITE_00001 |
| Platform host / API key | SERVER_HOST, SERVER_API_KEY |
| PLC NIC / WAN NIC | NET1_IFACE, NET2_IFACE |
| static IP / gateway / DNS | NET1_IP, NET2_IP, NET2_GATEWAY, NET2_DNS |
| Image-Tag-Richtlinie | latest oder fixes IMAGE_TAG=2026-YYYYMMDD |
| Richtlinie für initiale Anmeldedaten | zufällige Generierung oder Festlegung durch Betriebsteam |
| Externer Backup-Speicherort | NAS / S3 / Betriebliches Backup-Server |
Übermitteln Sie Anmeldedaten nicht per Chat oder im E-Mail-Text, sondern über eine root-exklusive Datei oder einen sicheren Betriebsspeicher für Passwörter.
3. Secret-safe Installations-env
Um zu verhindern, dass Passwörter und API-Keys im Shell-History landen, verwenden Sie eine root-exklusive env-Datei.
sudo -i
umask 077
install -m 600 /dev/null /root/pp-edge-install.env
${EDITOR:-vi} /root/pp-edge-install.env
Beispiel für den Dateiinhalt:
export EDGE_ID=EDGE_00303
export SITE_ID=SITE_00001
export SERVER_HOST=192.168.0.41
export SERVER_API_KEY='<platform-api-key>'
export NET1_IFACE=enp1s0
export NET1_IP=192.168.100.10/24
export NET2_IFACE=enp2s0
export NET2_IP=192.168.0.10/24
export NET2_GATEWAY=192.168.0.1
export NET2_DNS=192.168.0.1
# export IMAGE_TAG=2026.11-20261103-1006
Ausführung:
sudo -i
set -a
. /root/pp-edge-install.env
set +a
cd /opt/kopens/install
bash install.sh
Auch wenn das Betriebsteam das initiale Passwort direkt festlegt, fügen Sie ADMIN_PASS, API_KEY, MQTT_PASS, OPCUA_PASS und CERT_PASS in dieselbe Datei ein und behalten chmod 600 bei. Verwenden Sie für den offiziellen Cert-Passwort-Key ausschließlich CERT_PASS.
4. Erfassung von Abnahmenachweisen
Nach Abschluss der Installation erstellen Sie mit den folgenden Befehlen Nachweisdateien, wobei Geheimwerte ausgeschlossen werden.
sudo -i
OUT=/root/pp-edge-acceptance-$(date +%Y%m%d-%H%M%S).txt
{
echo "# PlantPulse Edge acceptance"
date -Is
echo
echo "## host"
hostnamectl
uname -a
timedatectl
echo
echo "## service"
systemctl is-enabled plantpulse-edge.service || true
systemctl is-active plantpulse-edge.service || true
systemctl status plantpulse-edge.service --no-pager | sed -n '1,40p'
echo
echo "## version"
curl -ks https://127.0.0.1/api/v1/system/version | python3 -m json.tool
echo
echo "## health"
curl -ks https://127.0.0.1/api/v1/system/health | python3 -m json.tool
echo
echo "## ports"
ss -lntp | grep -E ':(80|443|1883|1884|6379|9042|1880|12000|12443)([[:space:]]|$)' || true
echo
echo "## storage"
df -h /opt /data1 2>/dev/null || df -h
echo
echo "## docker"
docker ps --filter name=plantpulse-edge --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}'
} > "$OUT"
chmod 600 "$OUT"
sha256sum "$OUT" > "$OUT.sha256"
echo "$OUT"
Dem Betriebsteam bei der Abnahme zu übergebende Punkte:
- Pfad und SHA256 der Acceptance-Textdatei
/data1/pp-backups/pe-backup-*.tar.zstund.sha256/tmp/pe-doctor-*.tar.zstund.sha256(bei Problemen)- Gateway-IP,
EDGE_ID,SITE_ID, Image-Tag, Zeitpunkt der Installation - Bestätigung über die Übergabe der Anmeldedaten (Passwort im Klartext über separates Sicherheitsverfahren)
5. Neustart-Validierung
Vor der Übergabe in den Betrieb muss einmalig nach einem Service-Neustart die automatische Wiederherstellung überprüft werden.
sudo systemctl restart plantpulse-edge.service
sleep 30
sudo bash /opt/kopens/install/bin/health.sh
curl -ks https://127.0.0.1/api/v1/system/health | python3 -m json.tool
Bei Anlagen, bei denen die PLC-Verbindung bereits registriert ist, wird nach dem Neustart der Erfassungsstatus sowie die Aktualisierung des letzten Wertes überprüft.
6. Vorbereitung von Backup und Wiederherstellung
sudo bash /opt/kopens/install/bin/backup.sh
ls -lh /data1/pp-backups/
sha256sum /data1/pp-backups/pe-backup-*.tar.zst | tail -1
Kopieren Sie das erste Backup auf ein externes NAS, S3 oder einen betrieblichen Backup-Server. Ein Backup, das nur auf derselben Disk liegt, ermöglicht keine Wiederherstellung im Falle eines Hardwareausfalls.
7. Sperrung nach Übernahme durch das Betriebsteam
- Überprüfen, ob die
/etc/kopens/credentials.txt-Berechtigung auf0600 rootgesetzt ist - Änderung des initialen Admin-Passworts abgeschlossen
- Festlegung der Aufbewahrungsdauer für
/root/pp-edge-install.env: Übertragung in den sicheren Betriebsspeicher und anschließendes Löschen aus der Box oder Beibehaltung von root 0600 - In der Firewall nur die Ports zulassen, die für die WAN-Exposition erforderlich sind
- Registrierung der Kontaktinformationen des Betriebsteams und des Eskalationspfads
- Terminierung des nächsten Inspektionstermins und des Backup-Validierungstermins