Zum Hauptinhalt springen

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​

KategorieGo-KriteriumNo-Go
Deployment-Modusplantpulse-edge.service verwaltet die ContainerDienst ist nicht registriert
systemdplantpulse-edge.service active + enabledactive, aber nicht enabled, oder Restart-Loop
Health/api/v1/system/health HTTP 200 + components UPHTTP 503, component DOWN, anhaltende Antwortverzögerung
VersionAufzeichnung von image_tag / build_date in /api/v1/system/versionTag nicht bestätigt, Start mit veraltetem Image
NetzwerkErreichbarkeit von WAN, PLC NIC, DNS/NTP und Platform API bestätigtPLC-Netz besitzt Default-Route, NTP nicht synchronisiert
Sicherheit/etc/kopens/credentials.txt root 0600, Änderung des initialen Admin-Passworts abgeschlossenStandard-/gemeinsame Passwörter beibehalten, kein Nachweis über Übergabe der Anmeldedaten
Backupbackup.sh einmalig erfolgreich + .sha256 vorhandenBackup nicht ausgeführt, Backup existiert nur auf derselben Disk
Wiederherstellbarkeitdoctor.sh oder Erstellung eines Acceptance-LogsKeine 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:

PunktBeispiel
EDGE_IDEDGE_00303
SITE_IDSITE_00001
Platform host / API keySERVER_HOST, SERVER_API_KEY
PLC NIC / WAN NICNET1_IFACE, NET2_IFACE
static IP / gateway / DNSNET1_IP, NET2_IP, NET2_GATEWAY, NET2_DNS
Image-Tag-Richtlinielatest oder fixes IMAGE_TAG=2026-YYYYMMDD
Richtlinie für initiale Anmeldedatenzufällige Generierung oder Festlegung durch Betriebsteam
Externer Backup-SpeicherortNAS / 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.zst und .sha256
  • /tmp/pe-doctor-*.tar.zst und .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 auf 0600 root gesetzt 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