Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Ansible Semaphore

Inhaltsverzeichnis

Ansible Semaphore
#

Ansible Semaphore ist eine quelloffene, webbasierte Benutzeroberfläche zur Verwaltung und Ausführung von Ansible Playbooks. Sie bietet eine zentralisierte Plattform für Teams zur Zusammenarbeit bei Automatisierungsaufgaben.

Status
#

Status
Uptime
Ping
Avg Response Time
Certificate Expiration
Response Time

Deployment
#

Argo Deployment

Quelle
#

Diese Anwendung wird unter Verwendung des ansible-semaphore Helm-Charts aus dem cloudhippie Repository bereitgestellt.

Dokumentation
#

Die offizielle Dokumentation von Ansible Semaphore ist unter docs.ansible-semaphore.com zu finden.

Ansible Semaphore GitHub Repository

Funktion
#

Dieser Dienst bietet eine zentrale Schnittstelle für die Verwaltung und Ausführung von Ansible-Automatisierungen. Er ermöglicht die Zusammenarbeit von Teams, die Planung von Aufgaben und die Überwachung von Ausführungen.

Lokale Anpassungen
#

Die Konfiguration erfolgt über die values.yaml-Datei.

Wichtige Einstellungen
#

  • Datenbank: Es wird eine externe MariaDB-Datenbank verwendet.
  • Ingress: Der Zugriff auf die Weboberfläche wird über einen Ingress mit einem Hostnamen ermöglicht und durch Traefik verwaltet. Das TLS-Zertifikat wird über cert-manager bereitgestellt.
  • Speicher: Ein PersistentVolume wird für die Speicherung der Konfiguration und der Playbooks verwendet.
  • Authentifizierung: Die Benutzerauthentifizierung erfolgt über LDAP und OIDC.

Installation
#

Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/ansible-semaphore-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:

1kubectl kustomize --enable-helm apps/ansible-semaphore | kubectl apply -n ansible-semaphore -f -

Abhängigkeiten
#

  • Ein laufender Kubernetes-Cluster.
  • Ein Ingress-Controller (z.B. Traefik) für den externen Zugriff.
  • Eine Datenbank (z.B. MariaDB).
  • Ein LDAP-Server für die Benutzerauthentifizierung (optional).
  • Ein OIDC-Anbieter (z.B. Authentik) für die Authentifizierung (optional).
  • Ein SMTP-Server für E-Mail-Benachrichtigungen (optional).
  • Ein NFS-Server für persistente Speicherung.
  • cert-manager: Wird für die automatische Bereitstellung von TLS-Zertifikaten benötigt.
  • Longhorn/NFS: Ein Storage-Provider wird für die PersistentVolumes benötigt.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin