Hintergrund / Motivation

In vielen Unternehmen werden Produktangebote oder Tagesaktionen manuell auf Webseiten gepflegt. Dies ist zeitaufwendig, fehleranfällig und nicht automatisiert. Änderungen müssen oft händisch vorgenommen werden, was besonders bei täglich wechselnden Angeboten ineffizient ist. Ziel dieses Projekts ist es, eine automatisierte Lösung zu entwickeln, mit der ein „Angebot des Tages“ ohne manuelle Eingriffe bereitgestellt wird. Dabei soll ein Produkt entweder automatisch zufällig oder manuell über Jenkins auswählbar sein. Die Webseite soll sich regelmäßig selbst aktualisieren und stets das aktuelle Angebot anzeigen.

Beschreibung

Im aktuellen Ist Zustand werden die Produktangebote auf den Webseiten noch manuell direkt in den HTML Dateien angepasst. Eine zentrale Datenhaltung existiert nicht, sodass alle Informationen dezentral gepflegt werden müssen. Dadurch fehlt jede Form von Automatisierung oder zeitlicher Steuerung, was den Pflegeaufwand erheblich erhöht und die Fehleranfälligkeit deutlich steigert. Im Soll Zustand sollen alle Produkte zentral in einer MariaDB Datenbank gespeichert werden. Ein Jenkins Job liest die Produktdaten anschließend automatisiert aus dieser Datenbank aus. Über ein Active Choices Dropdown kann wahlweise ein bestimmtes Produkt manuell ausgewählt oder automatisch ein zufälliges Produkt bestimmt werden. Ein Ansible Playbook erzeugt daraufhin aus einem Jinja2 Template automatisch eine neue index.html. Die Webseite wird über Nginx bereitgestellt und regelmäßig aktualisiert. Zusätzlich wird der Jenkins Job täglich um 5 Uhr zeitgesteuert ausgeführt, um die Produktanzeige kontinuierlich aktuell zu halten.

Technologien
  • Containerisierung: Docker, Docker Compose
  • CI/CD & Automatisierung: Jenkins
  • Konfigurationsmanagement: Ansible
  • Templating: Jinja2
  • Webserver: Nginx
  • Datenbank: MariaDB
  • Programmiersprachen / Skripte:
  • Groovy (Jenkins Active Choices & Pipeline)
  • YAML (Ansible Playbooks)
  • HTML / CSS
  • Betriebssystem: Linux (LXC-Container)
  • IDE: Visual Studio Code
  • Versionsverwaltung: Git
Projektinfo
Schuljahr:
25/26
Ausbildung:
Systemintegration
Schüler:
Sebastian Schwandt
Betreuer:
Herr Stefan Heitzer
Bilder
Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.