syntro_gmbh.silverstripe

Ansible-Rolle: Silverstripe

Ansible Rolle
GitHub-Version (aktuellste)
Molecule-Test
Ansible Qualitätsbewertung
Ansible Rolle

Beschreibung

Silverstripe ist ein vielseitiges Open-Source-Framework für Websites. Diese Rolle installiert eine Silverstripe-Installation Ihrer Wahl auf einem LAMP-Server.

Wichtige Funktionen dieser Rolle:

  • Minimale Anforderungen für die Bereitstellung -> überall einsetzen
  • Versionsspeicherung -> schnell zurückrollen im Fehlerfall
  • Bereitstellung ohne Ausfallzeiten -> ohne Unterbrechung einsetzen
  • CI-fähig -> Tags angeben oder Branches aktuell halten
  • Backup-freundlich -> Backup-Skripte vor dem Löschen und Erstellen ausführen

Bereitstellung ohne Ausfallzeiten

Standardmäßig führt diese Rolle die Bereitstellung ohne Ausfallzeiten durch. Das bedeutet, dass die Build- und Löschprozesse stattfinden, bevor der tatsächliche Code mit html/index.php verlinkt wird. Dies hat Vorteile, da keine Benutzer vom Zugang zur Website ausgeschlossen werden, was Bereitstellungen in zeitkritischen Phasen ermöglicht. Silverstripe kann in den meisten Fällen auf diese Weise bereitgestellt werden, da die Datenbankstruktur weitgehend rückwärtskompatibel ist. Die einzigen Fälle, die zum Zeitpunkt des Schreibens dieses Readme zu Problemen führen könnten, sind:

  • Entfernen von DataObjects
    • Silverstripe entfernt die Tabelle nicht, sondern versieht sie mit dem Präfix deprecated_
  • Ändern von Enum-Werten

Diese Szenarien sind sehr spezifisch und sollten theoretisch nicht auftreten, da dies ein Zeichen für schlechte Planung auf Seiten des Entwicklers wäre.

Dennoch kann dies auch zu Problemen bei Datenbanksicherungen führen, da zusätzliche Maßnahmen ergriffen werden müssen, um konsistente Backups zu erhalten! Dies liegt in der Verantwortung des Nutzers dieser Rolle.

Installation

ansible-galaxy install syntro_gmbh.silverstripe

Anforderungen

  • Composer
  • Git

Abhängigkeiten

Keine, aber stellen Sie sicher, dass Composer und Git auf dem Host, auf den Sie bereitstellen, installiert sind.

Nutzung

Abgesehen von ein paar erforderlichen Variablen kann diese Rolle einfach für jedes Silverstripe-Projekt verwendet werden. Sehen Sie sich die Defaults Datei an, um eine Vorstellung davon zu bekommen, was Sie anpassen können.

Das Webroot und die generierten Dateien

Diese Rolle verwendet die folgende Verzeichnisstruktur, um Ihre Anwendung bereitzustellen:

{{ WorkingDir }}/
├── {{ current }}
│   ├── .htaccess
│   ├── index.php
│   ├── assets --> ../shared/assets
│   └── _resources --> ../releases/<current sha>/_resources
├── releases/
│   ├── <current sha>/
│   │   ├── .git
│   │   └── ...
│   └── <other sha>/
│       ├── .git
│       └── ...
├── shared/
│   └── assets/
└── logs/

Ihr Webroot sollte auf das Verzeichnis {{ WorkingDir }}/{{ current }}/ zeigen. Sie können diese Verzeichnisse über silverstripe_working_dir und silverstripe_current_dir_name konfigurieren.

Datenbank erstellen und aktualisieren sowie Backups ausführen

Um Silverstripe mit einer neuen Installation zum Laufen zu bringen, muss die Datenbank erstellt oder aktualisiert werden. Standardmäßig führt diese Rolle die Standard-Build-Aufgabe kombiniert mit dem Parameter flush=1 aus, bevor irgendwelche Dateien im Webroot aktualisiert werden.

Sie können weitere Befehle hinzufügen, aber vergessen Sie nicht, den Build-Befehl erneut hinzuzufügen, indem Sie silverstripe_provisioning_cmds verwenden. Dies ist auch der Ort, um alle Backup-Befehle hinzuzufügen, die Sie möglicherweise benötigen. (Sie könnten unsere restic Rolle verwenden, um ein Backup-Tool zu installieren und die Skripte automatisch zu erstellen.) Wenn Sie diese Skripte vor dem Build-Schritt hinzufügen, haben Sie die aktuellste Version Ihrer Installation, falls Sie zurückrollen müssen.

Bereitstellung ohne Ausfallzeiten

Diese Rolle stellt Silverstripe ohne Ausfallzeiten bereit. Das bedeutet, dass die Build- und Löschprozesse stattfinden, bevor der tatsächliche Code mit index.php verlinkt wird. Dies hat Vorteile, da keine Benutzer vom Zugang zur Website ausgeschlossen werden, was Bereitstellungen jederzeit möglich macht. Silverstripe kann in den meisten Fällen so bereitgestellt werden, da die Datenbankstruktur weitgehend rückwärtskompatibel ist. Die einzigen Fälle, in denen dies zum Zeitpunkt des Schreibens dieses Readme zu Problemen führen könnte, sind:

  • Entfernen von DataObjects
    • Silverstripe entfernt die Tabelle nicht, sondern versieht sie mit dem Präfix deprecated_
  • Ändern von Enum-Werten

Diese Szenarien sind sehr spezifisch und sollten theoretisch nicht auftreten, da dies ein Zeichen für schlechte Planung auf Seiten des Entwicklers wäre. Nichtsdestotrotz sollten Sie immer ein Backup der Datenbank erstellen, bevor Sie aktualisieren.

Rollenspezifische Variablen

Überprüfen Sie die Defaults-Datei, um eine Vorstellung davon zu bekommen, was Sie steuern können.

Minimales Beispiel-Playbook

- hosts: all
  vars:
    silverstripe_project_repository: https://github.com/silverstripe/demo.silverstripe.org
    silverstripe_project_version: master
    silverstripe_ss_database_name: silverstripe
    silverstripe_ss_database_username: root
    silverstripe_ss_database_password: root
  roles:
    - silverstripe

Autor

  • Matthias Leutenegger

Lizenz

MIT

(c) 2020, Syntro GmbH

Über das Projekt

Role to deploy a Silverstripe installation.

Installieren
ansible-galaxy install syntro_gmbh.silverstripe
GitHub Repository
Lizenz
mit
Downloads
1.1k