Entwicklung eines Salt-Formulas für acme.sh

Abgeschlossen
Januar 2024 - März 2024
Persönliches Projekt

Ich habe ein eigenes Salt-Formula entwickelt, mit dem sich SSL/TLS-Zertifikate automatisiert über acme.sh ausstellen lassen. Um die Funktionalität von Salt zu erweitern, habe ich zusätzlich eigene Salt Execution Modules in Python geschrieben, die eine direkte Kommunikation mit acme.sh ermöglichen. Dadurch können Zertifikate automatisch angefordert, erneuert und auf den Zielsystemen bereitgestellt werden.

Die Herausforderung

Ziel war es, die Zertifikatsverwaltung in Salt modular, wiederverwendbar und versionsunabhängig zu integrieren. Da Salt keine native Unterstützung für acme.sh bietet, mussten eigene Python-Module entwickelt werden.

  • Keine native Unterstützung von acme.sh in Salt
  • Bedarf an wiederverwendbarer und wartbarer Automatisierungslogik
  • Sicherstellung der Kompatibilität mit verschiedenen Salt-Versionen

Projektziele

Ziele des Projekts waren:

  • Entwicklung eines Salt-Formulas zur automatisierten Zertifikatserstellung über acme.sh
  • Erweiterung von Salt durch eigene Python Execution Modules
  • Automatisiertes Testing gegen verschiedene Salt-Versionen mit GitHub Actions
  • Aufbau eines vollständig automatisierten Zertifikats-Lebenszyklus

Die Lösung

Das Formula wurde so konzipiert, dass es Zertifikatsanforderungen, Erneuerungen und Bereitstellungen über acme.sh steuern kann. Die Python Execution Modules interagieren direkt mit acme.sh und liefern strukturierte Rückgaben an Salt. Über eine GitHub Actions Pipeline werden regelmäßig Tests mit den neuesten Salt-Releases durchgeführt.

Die Umsetzung

  • Formula-Entwicklung: Erstellung eines Salt-Formulas zur Verwaltung von SSL/TLS-Zertifikaten über acme.sh
  • Python-Module: Implementierung eigener Salt Execution Modules zur Zertifikatsverwaltung
  • Automatisierung: Aufbau einer GitHub Actions CI-Pipeline für automatisierte Versionstests
  • Dokumentation: Erstellung von Anwendungs- und Entwicklerdokumentationen

Das Ergebnis

  • Vollständig automatisierte Ausstellung und Erneuerung von Zertifikaten in Salt
  • Erweiterte Salt-Funktionalität durch eigene Python-Module
  • Kontinuierliche Tests zur Sicherstellung der Kompatibilität mit neuen Salt-Versionen

Fazit und Erkenntnisse

Das Projekt vertiefte mein Wissen in den Bereichen Salt-Modulentwicklung, Python-Automatisierung und CI/CD-Integration. Ich konnte wertvolle Erfahrungen in der Verbindung von Infrastructure as Code mit praktischen Automatisierungsszenarien sammeln.

  • Entwicklung eigener Salt-Module in Python
  • Erfahrung mit automatisierter Zertifikatsverwaltung via acme.sh
  • Vertieftes Verständnis von CI/CD-Pipelines und Versions-Testing