Dein erster produktiver Polycrate-Workspace: Eine Checkliste für den Start
TL;DR Ein sauber benannter, klar strukturierter Polycrate-Workspace ist die halbe Miete: ein …
Diese Serie zeigt Schritt für Schritt, wie Ansible mit Polycrate zu einer strukturierten, teilbaren und compliance-fähigen Automatisierungsplattform wird – von den Grundlagen bis zu Enterprise-Szenarien.
Ansible ist seit Jahren ein De-facto-Standard für Automatisierung – von Linux-Servern über Windows-Hosts bis zu Netzwerkkomponenten und IoT. Polycrate setzt genau dort an: Es ersetzt Ansible nicht, sondern strukturiert und operationalisiert es.
Eine grobe Einordnung:
| Thema | Plain Ansible | Polycrate (mit Ansible) |
|---|---|---|
| Installation | ansible per OS-Paket, pip, virtualenv | Kein lokales Ansible nötig, läuft im Container, reproduzierbare Toolchain |
| Sharing | Git-Repos, Roles, Galaxy | Versionierte Blöcke in OCI-Registry, teilbar über PolyHub und eigene Registries |
| Struktur | Frei: Playbooks, Roles, Verzeichniskonventionen | Block/Action/Workspace-Modell mit klaren Guardrails gegen Playbook-Wildwuchs |
| Secrets | Ansible Vault, externe Tools | Eingebaute Workspace-Verschlüsselung mit age, kein separater Vault-Stack nötig |
| Konfiguration | Variablen-Dateien, group_vars, host_vars | Deep-Merge von workspace.poly, Block-Config und action-spezifischen Variablen |
| Usability | ansible / ansible-playbook CLIs | Einfache polycrate run BLOCK ACTION-Befehle, gute UX auch für weniger technische Nutzer |
| Ökosystem | Ansible Galaxy Roles | PolyHub-Blöcke (+ Galaxy weiterhin nutzbar innerhalb der Blöcke) |
Im Kern: Ansible ist die Engine, Polycrate ist das Operations-Framework darum herum.
polycrate runViele Teams starten so:
sudo apt-get install ansible
# oder
python3 -m venv .venv
source .venv/bin/activate
pip install ansible==9.5.1
pip install -r requirements.txtDazu kommen:
azure.azcollection, community.general),ansible.cfg, SSH-Setups, PATH-Issues pro Arbeitsplatz.Auf Teamebene bedeutet das:
pip install aus dem Internet.Mit Polycrate läuft Ansible immer in einem Container. Du brauchst lokal nur Polycrate und einen Container-Runtime (Docker, Podman):
polycrate run linux-patch patchWas hier passiert:
kubectl, helm, etc.).pip install auf der Workstation, keine Python-Version-Konflikte, kein manuelles Setup.Das löst das klassische Dependency-Problem:
Details zur Integration findest du in der Ansible-Integration in Polycrate und den Best Practices.
Standard ist:
README.md“).Willst du ein Playbook aus einem anderen Team nutzen, musst du:
ansible.cfg verstehen,Das funktioniert, wird aber mit wachsender Organisation unübersichtlich.
In Polycrate packst du Automatisierung in Blöcke. Jeder Block ist:
cargo.ayedo.cloud oder eigene Registry),workspace.poly.Ein Beispiel für einen lokalen Block blocks/linux-patch/block.poly:
name: linux-patch
version: 0.1.0
kind: generic
config:
target_hosts: all
maintenance_window: "sunday-2200"
actions:
- name: patch
description: "Führt ein dist-upgrade auf Linux-Servern durch"
playbook: patch.ymlAusschnitt aus workspace.poly, der den Block instanziiert:
name: acme-corp-automation
organization: acme
blocks:
- name: linux-patch
from: linux-patch
config:
target_hosts: all
maintenance_window: "sunday-2200"Ein anderer Workspace – vielleicht von einem anderen Team – könnte denselben Block über eine Registry referenzieren:
name: acme-ops
organization: acme
blocks:
- name: linux-patch-prod
from: cargo.ayedo.cloud/acme/linux/linux-patch:0.1.0
config:
target_hosts: prod-linux
maintenance_window: "saturday-2300"Mit polycrate run linux-patch-prod patch nutzen sie deine Automatisierung, ohne:
ansible.cfg zu übernehmen,Das ist „Sharable Automation“: Was du baust, können andere sofort nutzen – versioniert und reproduzierbar. Mehr dazu in der PolyHub-Dokumentation und direkt in PolyHub unter hub.polycrate.io.
Ansible Vault ist bewährt, aber aufwendig im Umgang:
Compliance-seitig (z. B. im Kontext der DSGVO, die am 25.05.2018 in Kraft trat) stellst du Fragen wie:
Polycrate geht einen anderen Weg: Der gesamte Workspace (oder ausgewählte Teile, insbesondere artifacts/secrets/) kann mit age verschlüsselt werden. Du brauchst keinen separaten Vault-Dienst.
Typisches Vorgehen:
# Workspace initialisieren (wenn noch nicht geschehen)
polycrate workspace init
# Secrets hinzufügen, z.B. SSH-Keys, API-Tokens
mkdir -p artifacts/secrets
echo "super-secret-password" > artifacts/secrets/db-password.txt
# Workspace verschlüsseln
polycrate workspace encryptPolycrate kümmert sich darum, dass:
Vorteile gegenüber Vault:
Details findest du in der Dokumentation zur Workspace-Verschlüsselung.
Mit Ansible kannst du deine Struktur komplett frei wählen:
playbooks/, roles/, group_vars/, host_vars/, inventories/ …In kleinen Teams ist das oft okay. In größeren Umgebungen wird es schnell chaotisch:
Polycrate gibt dir ein klares Framework:
workspace.poly), zentrale Konfiguration, Inventories, Secrets.patch, dry-run, rollback).Dieser Rahmen verhindert Playbook-Wildwuchs und schafft Guardrails. Jede Action wird exakt so aufgerufen:
polycrate run linux-patch patchKeine langen ansible-playbook-Kommandos mit zig Parametern – gut verständlich auch für Kolleg:innen, die nicht täglich Ansible schreiben.
Plain Ansible Playbook patch.yml:
- name: Linux-Systeme patchen
hosts: all
become: true
tasks:
- name: Paketliste aktualisieren
ansible.builtin.apt:
update_cache: yes
- name: Dist-Upgrade durchführen
ansible.builtin.apt:
upgrade: dist
autoremove: yes
autoclean: yesInventory als YAML (inventory.yml):
all:
hosts:
server01.acme-corp.com:
ansible_user: ubuntu
server02.acme-corp.com:
ansible_user: ubuntuAufruf mit plain Ansible:
ANSIBLE_INVENTORY=inventory.yml ansible-playbook patch.ymlJetzt dasselbe mit Polycrate. Wir nutzen denselben Inhalt von patch.yml, aber parametrisieren hosts:
- name: Linux-Systeme patchen (Polycrate)
hosts: "{{ block.config.target_hosts }}"
become: true
tasks:
- name: Paketliste aktualisieren
ansible.builtin.apt:
update_cache: yes
- name: Dist-Upgrade durchführen
ansible.builtin.apt:
upgrade: dist
autoremove: yes
autoclean: yesUnser Block blocks/linux-patch/block.poly:
name: linux-patch
version: 0.1.0
kind: generic
config:
target_hosts: all
maintenance_window: "sunday-2200"
actions:
- name: patch
description: "Führt ein dist-upgrade auf den definierten Hosts durch"
playbook: patch.ymlUnd workspace.poly im Root-Verzeichnis:
name: acme-corp-automation
organization: acme
config:
environment: "prod"
blocks:
- name: linux-patch
from: linux-patch
config:
target_hosts: all
maintenance_window: "sunday-2200"Aufruf:
polycrate run linux-patch patchWichtige Punkte:
inventory.yml) liegt im Workspace-Root – Polycrate setzt ANSIBLE_INVENTORY automatisch.block.config.* kommen aus workspace.poly und werden mit der Block-Config „deep-merged“. Du hast ein zentrales Konfigurationsmodell statt verstreuter group_vars und host_vars.Mehr zur Workspace- und Block-Struktur findest du in den Docs zu Workspaces, Blöcken und Actions.
In plain Ansible siehst du häufig:
vars/, group_vars/, host_vars/,-e auf der CLI.Das ist flexibel, aber:
Polycrate ergänzt hier:
workspace.config für globale Defaults,block.config pro Block-Instanz,Damit lassen sich Umgebungen sauber trennen:
workspace.config.environment = "prod" vs. "dev",target_hosts pro Block-Instanz,Du behältst alle Stärken von Ansible (Idempotenz, große Modulauswahl), bekommst aber ein klar definiertes Konfigurationsmodell auf Workspace-Ebene dazu.
Ansible Galaxy ist ein riesiger Pool an Rollen und Collections. Viele davon kannst du direkt in Polycrate-Blöcken nutzen:
collections: in requirements.yml,roles: in deinen Playbooks.Polycrate ergänzt dieses Ökosystem:
So kombinierst du:
Polycrate ist kein Allheilmittel und nicht für jede Situation die richtige Wahl. Szenarien, in denen plain Ansible oft völlig ausreichend oder sogar besser geeignet ist:
ansible-playbook völlig reichen.Wichtig: Polycrate setzt auf Ansible auf. Du musst nicht „umsteigen“, sondern kannst Schritt für Schritt:
Ja. Polycrate nutzt Ansible im Container. Du kannst:
block.poly anlegen, die auf dieses Playbook verweist,workspace.poly referenzieren,polycrate run BLOCK ACTION ausführen.Der Migrationsaufwand hängt davon ab, wie „wild“ deine bestehende Struktur ist. In vielen Fällen reicht es, hosts-Deklarationen leicht zu parametrisieren (z. B. hosts: "{{ block.config.target_hosts }}") und Inventory/Variablen ins Workspace-Modell zu überführen. Die Ansible-Integration in Polycrate zeigt dieses Vorgehen Schritt für Schritt.
Du brauchst kein Kubernetes-Know-how, aber ein grundlegendes Verständnis von Containern hilft. Polycrate nutzt Container, um Ansible und die Toolchain reproduzierbar auszuführen. Für klassische Szenarien – Linux-/Windows-Server, AD, IoT/Edge – musst du keine Container-Images selbst bauen, sondern kannst auf die Standard-Toolchain setzen oder eine bereitgestellte Toolchain im Unternehmen verwenden. Wenn du bereits im Bereich Platform Engineering unterwegs bist, fügt sich Polycrate besonders gut in deine bestehende Container- und GitOps-Landschaft ein.
Nein. Polycrate adressiert zwar viele Probleme, die in größeren Organisationen besonders sichtbar werden (Dependency-Chaos, Sharing, Compliance, Multi-Team-Kollaboration), aber auch kleinere Teams profitieren von:
Wenn du heute schon spürst, dass deine Ansible-Landschaft wächst und unübersichtlich wird, lohnt sich ein Blick auf Polycrate – bevor der Playbook-Wildwuchs richtig einsetzt.
Weitere Fragen? Siehe unsere FAQ
Plain Ansible und Polycrate sind keine Gegensätze, sondern zwei Ebenen derselben Idee: Skriptbare, deklarative Infrastruktur und Automatisierung. Ansible liefert die mächtige Engine, Polycrate kümmert sich um die operationalen Themen, die in der Praxis schnell weh tun: Dependencies, Sharing, Struktur, Secrets und Wiederverwendbarkeit.
In diesem Beitrag hast du gesehen:
Als ayedo begleiten wir Teams von ersten Experimenten mit Polycrate bis hin zu durchgängigen Platform-Engineering-Setups, in denen Ansible, Polycrate, Monitoring, Security und Compliance sauber zusammenspielen. Ob du heute vor allem Ansible optimieren oder morgen eine komplette Polycrate-basierte Automatisierungsplattform aufbauen willst – wichtig ist, dass die nächsten Schritte pragmatisch, nachvollziehbar und für dein Team handhabbar sind.
Wenn du selbst erleben möchtest, wie sich polycrate run im Vergleich zu ansible-playbook in deinem Alltag anfühlt, ist jetzt ein guter Zeitpunkt, es auszuprobieren.
Übersicht und Anmeldung: Workshops.
TL;DR Ein sauber benannter, klar strukturierter Polycrate-Workspace ist die halbe Miete: ein …
TL;DR Die meisten Umgebungen sind hybrid: Windows-Server fürs AD, Fileservices und Fachanwendungen, …
TL;DR Du richtest WinRM einmal sauber mit HTTPS, Zertifikat und Firewall-Regeln ein und hast danach …