Zum Inhalt

Integrationen

Polycrate integriert sich nahtlos mit einer Vielzahl von Tools und Plattformen für Infrastructure-as-Code, Configuration Management, Container-Orchestrierung und Cloud-Provisioning. Diese Integrationen ermöglichen es Ihnen, komplexe Infrastrukturen und Anwendungen mit einem einheitlichen Workflow zu verwalten.

Übersicht

graph TB
    Polycrate[Polycrate] --> Ansible[Ansible]
    Polycrate --> Kubernetes[Kubernetes]
    Polycrate --> Docker[Docker & Docker Compose]
    Polycrate --> SSH[SSH]
    Polycrate --> Git[Git]
    Polycrate --> MCP[MCP Server]
    Polycrate --> Security[Security Scanning]

    Ansible -->|provisioniert| Hosts[Linux-Hosts]
    Ansible -->|deployt| DockerApps[Docker-Apps]
    Ansible -->|deployt| K8sApps[Kubernetes-Apps]

    Kubernetes -->|verwaltet| Clusters[K8s-Cluster]
    Kubernetes -->|deployt mit| Helm[Helm-Charts]

    Docker -->|deployt| Containers[Container]
    Docker -->|orchestriert| Stacks[Docker-Compose-Stacks]

    SSH -->|verbindet mit| Hosts
    Git -->|synchronisiert| Workspace[Workspace]
    MCP -->|verbindet| AI[AI-Assistenten]
    Security -->|scannt| Blocks[Blöcke]

Verfügbare Integrationen

Configuration Management & Deployment

Ansible

Die primäre Integration für Configuration Management und Deployment. Polycrate bietet erstklassigen Support für Ansible-Playbooks als Actions.

Features:

  • Ansible-Playbooks als Actions ausführen
  • Automatische Inventory-Integration
  • Snapshot-Variablen als Ansible-Extra-Vars
  • SSH-Key-Management
  • Framework-Rollen für häufige Aufgaben
  • Kubernetes-Deployment mit Ansible
  • Docker-Compose-Management mit Ansible

Anwendungsfälle:

  • Linux-Server provisionieren und konfigurieren
  • Applikationen deployen (Docker, K8s, bare-metal)
  • Configuration-Drift beheben
  • Multi-Host-Orchestrierung

Zur Ansible-Dokumentation


Container & Orchestration

Kubernetes

Native Integration mit Kubernetes-Clustern für Application-Deployment und Cluster-Management.

Features:

  • Kubeconfig-Management pro Block
  • Helm-Chart-Integration
  • Namespace-Verwaltung
  • Ingress-Konfiguration
  • Persistence-Management
  • Monitoring-Integration
  • Multi-Cluster-Support

Anwendungsfälle:

  • Kubernetes-Applikationen deployen
  • Helm-Charts installieren und upgraden
  • Cluster-Konfiguration verwalten
  • Kubernetes-Manifeste anwenden

Zur Kubernetes-Dokumentation


Docker & Docker Compose

Integration mit Docker für Container-Management und Docker-Compose-Stacks.

Features:

  • Docker-Container starten/stoppen
  • Docker-Compose-Stacks deployen
  • Image-Building
  • Registry-Integration
  • Container-Netzwerke verwalten

Anwendungsfälle:

  • Docker-Compose-Stacks auf Servern deployen
  • Container-basierte Applikationen verwalten
  • Multi-Container-Setups orchestrieren

Zu Docker-Compose-Beispielen


Remote Access & Connectivity

SSH

Integration mit SSH für direkten Zugriff auf Hosts und Ansible-Verbindungen.

Features:

  • Automatisches SSH-Key-Management
  • SSH-Shortcut: polycrate ssh HOSTNAME
  • SSH-Agent-Integration
  • Passphrase-Support ⚠️ Experimental
  • SSH-Control-Master für persistente Verbindungen
  • Host-Cache für Performance

Anwendungsfälle:

  • Schneller Zugriff auf Ansible-Inventory-Hosts
  • Debugging auf Remote-Servern
  • Manuelle Operationen auf Hosts

Zur SSH-Dokumentation


Version Control

Git

Native Git-Integration basierend auf go-git – ohne externe Git-Installation.

Features:

  • Eingebaute Git-Commands: status, add, commit, push, pull, sync
  • Farbige Status-Ausgabe
  • Conflict-Erkennung vor dem Pull
  • Automatische SSH-Key-Nutzung aus dem Workspace
  • Auto-Commit nach Actions (optional)

Anwendungsfälle:

  • Workspace-Änderungen versionieren
  • Team-Collaboration
  • Schneller Sync-Workflow mit einem Befehl
  • GitOps-Workflows

Zur Git-Dokumentation


AI-Integration

MCP Server

Integrierter MCP-Server (Model Context Protocol) für AI-Assistenten wie Claude und Cursor.

Features:

  • AI kann Blocks im Hub durchsuchen und filtern
  • Block-Details, README und Changelogs abrufen
  • Konfigurationshilfe durch kontextbezogene Empfehlungen
  • Automatische Block-Discovery für neue Workspaces

Anwendungsfälle:

  • Workspace-Entwicklung mit AI-Unterstützung
  • Block-Suche ohne manuelle Hub-Navigation
  • Konfigurationsbeispiele generieren lassen
  • Workspace-Generierung durch AI

Zur MCP-Dokumentation


Security & Compliance

Security Scanning

Integriertes Security-Scanning für Blöcke mit SBOM-Generierung, Vulnerability-Detection und IaC-Security-Checks.

Verfügbare Scanner:

Tool Typ Best für
Checkov (Standard) IaC Security Scanner Ansible, Terraform, Kubernetes, Dockerfiles
Trivy All-in-One Scanner Container, Dependencies, Secrets, Lizenzen
Syft + Grype Best of Breed Production-Grade SBOM + Vulnerability Matching

Features:

  • SBOM-Generierung im CycloneDX-Format
  • IaC-Security-Checks für Ansible-Playbooks
  • Vulnerability-Scanning für Dependencies
  • Secret-Detection in Code
  • Lizenz-Compliance-Checks
  • Interaktive TUI zur Ergebnis-Anzeige

Anwendungsfälle:

  • Ansible-Playbooks auf Security-Misconfigurations prüfen
  • Dependencies auf bekannte CVEs scannen
  • SBOM für Compliance-Anforderungen generieren
  • Security-Baseline für Blöcke etablieren

Beispiel:

# Block mit Checkov analysieren (IaC-Security)
polycrate block analyze my-block

# Ergebnisse anzeigen
polycrate block vulnerabilities inspect my-block

# Mit Trivy analysieren (Dependencies)
polycrate block analyze my-block --tool trivy
polycrate block sbom inspect my-block

Output-Dateien:

Nach der Analyse werden zwei Dateien im Block-Verzeichnis erstellt:

  • sbom.poly - Software Bill of Materials
  • vulnerabilities.poly - Security-Findings

Zur Block-Scanning-Dokumentation


Integration-Matrix

Tool Primary Use Case Action Type Config Format State Management
Ansible Config Management Playbook YAML Idempotent
Kubernetes Container Orchestration Kubectl/Helm YAML Declarative
Docker Compose Multi-Container Apps Ansible YAML Imperative
SSH Remote Access Direct - Stateless
Git Version Control CLI Commands - Commits
MCP AI-Integration Server JSON Stateless
Security Scanning SBOM & Vulnerabilities CLI Commands YAML Stateless

Typische Integration-Patterns

Pattern 1: Infrastructure → Ansible Configuration

graph LR
    Infra[Infrastructure-Block] -->|provisioniert| Hosts[Linux-Hosts]
    Infra -->|generiert| Inv[Inventory-Artifact]
    Inv -->|genutzt von| Ansible[Ansible-Block]
    Ansible -->|konfiguriert| Hosts
  1. Infrastructure-Block erstellt Hosts (z.B. via Cloud-Provider-APIs)
  2. Action generiert Ansible-Inventory
  3. Ansible-Block nutzt generiertes Inventory für Configuration

Beispiel:

# workspace.poly
blocks:
  # Infrastructure-Block erstellt Server
  - name: infrastructure
    from: registry.my-org.com/blocks/infra/base:1.0.0
    # Action "provision" generiert inventory.yml

  # Ansible-Block für Server-Konfiguration
  - name: configure-servers
    from: registry.my-org.com/blocks/ansible/webserver:1.0.0
    inventory:
      from: infrastructure  # Nutzt generiertes Inventory

inventory.from in workspace.poly

Die inventory.from Referenz wird immer in der workspace.poly definiert, nicht in der block.poly.

Pattern 2: Kubernetes-Cluster → Apps

graph LR
    Cluster[Cluster-Block] -->|erstellt| K8s[K8s-Cluster]
    Cluster -->|generiert| KC[Kubeconfig-Artifact]
    KC -->|genutzt von| App1[App-Block 1]
    KC -->|genutzt von| App2[App-Block 2]
    App1 -->|deployt zu| K8s
    App2 -->|deployt zu| K8s
  1. Cluster-Block erstellt Kubernetes-Cluster
  2. Kubeconfig wird als Artifact gespeichert
  3. App-Blocks erben Kubeconfig und deployen zu Cluster

Beispiel:

# workspace.poly
name: my-workspace

blocks:
  # Cluster-Block generiert Kubeconfig
  - name: prod-cluster
    from: registry.my-org.com/blocks/cloud/eks:1.0.0

  # App-Block erbt Kubeconfig vom Cluster
  - name: my-app
    from: registry.my-org.com/blocks/k8s/my-app:1.0.0
    kubeconfig:
      from: prod-cluster  # Nutzt Kubeconfig vom Cluster-Block

Pattern 3: Multi-Stage-Deployment

graph TB
    Start[Start] --> Infra[Infrastructure: Provision]
    Infra --> Inv[Generate Inventory]
    Inv --> Ansible[Ansible: Configure]
    Ansible --> K8s[Deploy to Kubernetes]
    K8s --> Verify[Verify Deployment]

Komplettes Deployment mit mehreren Integrationen in einem Workflow:

# In workspace.poly
name: my-workspace

blocks:
  - name: infrastructure
    # ...
  - name: configure-servers
    # ...
  - name: my-app
    # ...

workflows:
  - name: deploy-complete-stack
    steps:
      - name: provision-infrastructure
        block: infrastructure
        action: provision

      - name: generate-inventory
        block: infrastructure
        action: generate-inventory

      - name: configure-servers
        block: configure-servers
        action: install  # Ansible

      - name: deploy-application
        block: my-app
        action: deploy

Best Practices

1. Separation of Concerns

Trennen Sie Infrastructure, Configuration und Application in separate Blocks:

infrastructure-block
  └── generates inventory
configure-block (Ansible)
  └── prepares servers
app-block (K8s / Docker)
  └── deploys application

2. Artifact-basierte Kommunikation

Nutzen Sie Artifacts für die Kommunikation zwischen Integrationen:

  • Infrastructure → Inventory-Artifact → Ansible
  • Kubernetes-Setup → Kubeconfig-Artifact → App-Deployment
  • Config-Generator → Config-Files → Application

3. Idempotenz

Alle Integrationen sollten idempotent sein:

  • Ansible-Playbooks: Nutzen Sie state: present, nicht imperative Commands
  • Kubernetes: Nutzen Sie kubectl apply, nicht create

4. Error-Handling

Implementieren Sie Rollback-Strategien in Workflows:

workflows:
  - name: deploy-with-rollback
    steps:
      - name: backup
        block: database
        action: backup

      - name: deploy
        block: app
        action: install
        allow_failure: false  # Stop bei Fehler

      - name: verify
        block: app
        action: health-check

      # Bei Fehler: Rollback
      - name: rollback
        block: app
        action: rollback

Nächste Schritte

Erkunden Sie die einzelnen Integrationen im Detail:

  1. Für Configuration Management: Ansible-Dokumentation
  2. Für Container-Orchestration: Kubernetes-Dokumentation
  3. Für Remote-Access: SSH-Dokumentation
  4. Für Version Control: Git-Dokumentation
  5. Für AI-Assistenten: MCP-Server-Dokumentation
  6. Für Security & Compliance: Block-Scanning-Dokumentation

Oder lernen Sie, wie Sie Workflows erstellen, die mehrere Integrationen orchestrieren.