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
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
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
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
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 Materialsvulnerabilities.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 - Infrastructure-Block erstellt Hosts (z.B. via Cloud-Provider-APIs)
- Action generiert Ansible-Inventory
- 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 - Cluster-Block erstellt Kubernetes-Cluster
- Kubeconfig wird als Artifact gespeichert
- 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, nichtcreate
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:
- Für Configuration Management: Ansible-Dokumentation
- Für Container-Orchestration: Kubernetes-Dokumentation
- Für Remote-Access: SSH-Dokumentation
- Für Version Control: Git-Dokumentation
- Für AI-Assistenten: MCP-Server-Dokumentation
- Für Security & Compliance: Block-Scanning-Dokumentation
Oder lernen Sie, wie Sie Workflows erstellen, die mehrere Integrationen orchestrieren.