October CMS Deployments

von Tobias Kündig

    Das Wichtigste in Kürze

  • October CMS Installationen mit einem Befehl einrichten
    oc-bootstrapper bietet die Möglichkeit, eine komplette October CMS Installation mit einem Befehl einzurichten.
  • Zentrale Konfigurationsdatei für Einstellungen und Plugins
    Die Installation wird in einer YAML-Datei beschrieben. Der oc-bootstrapper richtet die Installation gemäss dieser Konfiguration ein.
  • Verwaltung von Dateivorlagen für einfachere Kollaboration
    Bestimmte Projektdateien können zentral abgelegt werden und zu Projektbeginn in ein neues Projekt importiert werden.
  • Minimierung des Fehlerpotentials durch automatisierte Prozesse
    Funktionen für das automatisierte Veröffentlichen von Projekten verringern das Fehlerpotential enorm.
  • Kosteneffiziente Erweiterungen auch nach dem Projektlaunch
    Dank der automatisierten Veröffentlichung können Änderungen auch nach Monaten ohne grosse Hürden vorgenommen werden.
  • Grosse Zeit- und Geld-Ersparnis für uns und unsere Kunden
    Durch den komplett automatisierten Ablauf sparen wir als Agentur Zeit und unsere Kunden Geld.

oc-bootstrapper

Das automatische Veröffentlichen von Projekten ist dank Tools wie GitLab CI, Travis oder GitHub Actions in den letzten Jahren für jedermann sehr einfach zugänglich geworden. Dennoch braucht es eine gute Planung und die richtigen Abläufe um fehlerfreie Deployments zu ermöglichen.

Um den kompletten Entwicklungsprozess unserer October CMS Projekte von der Erstellung bis zum Deployment zu vereinfachen, haben wir im Jahr 2016 das oc-bootstrapper Projekt ins Leben gerufen. Wichtigster Bestandteil des oc-bootstrapper ist der eingebaute Support für automatische Deployments.

Vorteile für unsere Kunden

Spätestens, wenn Du nach einigen Wochen und den ersten Erfahrungen mit Deiner Website die ersten Anpassungen vornehmen möchtest, zeigt sich warum: Wir als Webagentur sparen Zeit und Du als Kunde somit Geld, wenn wir Anpassungen und Erweiterungen möglichst einfach und effizient veröffentlichen können.

Ausserdem minimieren wir durch das hohe Mass an Automatisationen das Fehlerpotenzial und garantieren Deiner Website einen nahezu unterbruchsfreien Betrieb während eines Updates. Ebenfalls lassen sich alte Projektstände dank der integrierten Versionierung per Knopfdruck wiederherstellen.

Funktionsweise des oc-bootstrapper

Die folgenden Abschnitte zeigen Dir als Programmierer die technischen Details des oc-bootstrapper.

Installation

oc-bootstrapper reduziert die Installation von October CMS mit allen Plugins und Konfigurationseinstellungen auf den einfachen october install Befehl. Während Deployments kann dieser Befehl genutzt werden, um ein Projekt auf einem Produktiv-System einzurichten oder zu aktualisieren.

Der Befehl ist idempotent, es wird also bei mehrfacher Ausführung immer nur installiert und eingerichtet, was noch fehlt.

oc-bootstrapper kann einfach als globale oder lokale Abhängigkeit via composer installiert werden.

composer global require offline/oc-bootstrapper

Anschliessend steht der Befehl october (globale Installation) oder ./vendor/bin/october (lokale Installation) zur Verfügung.

Konfiguration

Mit dem Befehl october init projektname.ch wird ein neues Projekt mit einer Beispiel-Konfiguration erstellt. Alle Einstellungsmöglichkeiten befinden sich in der Datei october.yaml.

Zuallererst müssen die Wertecms.theme, database und plugins angepasst werden:

cms:
    theme: beispiel-theme (git@github.com:rainlab/bonjour-theme.git)

database:
    username: root
    password: hunter2
    database: bootstrapper
    host: localhost

plugins:
    - RainLab.Pages
    - OFFLINE.Sentry
    - OFFLINE.Clockwork
    - OFFLINE.PrivatePlugin (git@github.com:offline-gmbh/private-plugin.git#develop)

Installation von privaten Plugins und Themes

Ein wichtiges Feature des oc-bootstrapper ist die einfache Installation von privaten Plugins und Themes. Wird hinter einem Theme- oder Plugin-Namen eine Git-Adresse in Klammern ergänzt, werden diese Inhalte einfach während der Installation heruntergeladen und installiert.

Lokale Installation

Nachdem die Konfigurationsdatei angepasst wurde, reicht der Befehl october install aus, um die komplette October CMS Installation gemäss Konfiguration auszuführen.

$ october install

Downloading latest October CMS...
Installing composer dependencies...
Setting up config files...
Migrating database...
Installing Theme...
Installing Plugins...
- RainLab.Pages
- OFFLINE.Sentry
- OFFLINE.Clockwork
- OFFLINE.PrivatePlugin
Migrating plugin tables...
Setting up deployments...
Creating .gitignore...
Removing demo data...
Creating README...
Cleaning up...
Clearing cache...
Application ready! Build something amazing.

Arbeiten im Team

Die Standard-Konfiguration von oc-bootstrapper stellt sicher, dass nur die themes und plugins Verzeichnisse in Git beachtet werden. Dies hält die Repos schlank und löst die Abhängigkeit von der installierten October CMS Version.

Team-Mitglieder können ein Projekt-Repo auschecken und mit einem erneuten Ausführen von october install die komplette Installation wiederherstellen.

Dateivorlagen

oc-bootstrapper bietet die Möglichkeit, eigene .gitignore, october.yaml oder gitlab-ci.yml Dateivorlagen bereitzustellen. Werden Dateien im Verzeichnis ~/.config/composer/october abgelegt, werden diese anstelle der Standard-Dateien während der Installation verwendet.

Um die Synchronisation der Dateivorlagen im Team zu vereinfachen, kann ein Git-Repo in ~/.config/composer/october erstellt werden. oc-bootstrapper wird automatisch ein git pull vor jeder Installation ausführen, um die neusten Versionen der Dateien herunterzuladen. Die Dateien können so zentral via Git für das ganze Team verwaltet werden.

Neue Plugins installieren

Ein wichtiger Grundsatz beim Arbeiten mit oc-bootstrapper ist, dass Plugins nur via october.yaml installiert werden dürfen. Dazu reicht das Ergänzen des neuen Plugins in der plugins Sektion und das erneute Ausführen von october install aus.

Deployments via GitLab CI

Deployments auf Produktiv-Server funktionieren nach dem gleichen Prinzip wie das Arbeiten im Team:

  1. Das Repo wird auf dem Produktiv-Server ausgecheckt
  2. october install wird ausgeführt um alle neuen Abhängigkeiten zu installieren und die Datenbank zu migrieren

oc-bootstrapper bringt integrierten Support für Deployments via GitLab CI mit Laravel Envoy. Bei jedem Aufruf von october install wird eine gitlab-ci.yml und Envoy.blade.php generiert.

In der gitlab-ci.yml wird ein ssh-agent gestartet, um die Verbindung zum Zielsystem herstellen zu können. Anschliessend wird envoy run ausgeführt.

Envoy stellt sicher, dass auf dem Zielsystem composer und oc-bootstrapper installiert sind. Anschliessend wird october install ausgeführt, um die Installation durchzuführen.

Die mit ausgelieferten Dateien können jederzeit auf die eigenen Bedürfnisse angepasst werden.

Komplette Dokumentation zu allen Funktionen

Die komplette Dokumentation zu oc-bootstrapper befindet sich auf GitHub: https://github.com/OFFLINE-GmbH/oc-bootstrapper

Im README wird noch detaillierter auf die ssh-Konfiguration in GitLab und die Verwaltung von Dateivorlagen eingegangen.

Ein Beitrag aus dieser Serie
October CMS

Infos, Tutorials und News zu unserem lieblings CMS.

Weitere Beiträge anzeigen »
Mehr aus dieser Kategorie
Entwicklung
Hier findest du Blogartikel technischer Natur.
Weitere Beiträge anzeigen »

Los geht's!

Kontaktiere uns noch heute

Für Offerten, technische Anfragen oder einfach nur um Hallo zu sagen.