bmeme.drupal

Workflow Wartung MIT-Lizenz

Ansible-Rolle: Drupal

Erstellen, Installieren und Aufbauen eines Drupal Projekts.

Dies ist die erste veröffentlichte Ansible-Rolle, die von Bmeme erstellt wurde und tatsächlich in unserem Drupal-Entwicklungsprozess verwendet wird. Sie wurde von anderen Rollen inspiriert, die wir normalerweise nutzen/nutzen und die großartig sind:

Anforderungen

Um diese Rolle korrekt zu verwenden, benötigen Sie einen klassischen LAMP/LEMP-Stack:

  • einen Standard-Webserver (empfohlen: Apache oder Nginx)
  • eine MySQL/PostgreSQL-Datenbank
  • einen PHP-Interpreter (7.x oder neuester)
  • Composer (empfohlen: geerlingguy.composer)

Drush ist eine notwendige Abhängigkeit, die diese Rolle in Ihrem Drupal-Projekt bereitstellt.

Abhängigkeiten

  • community.mysql Sammlung
  • community.general Sammlung

Installation

Diese Rolle wird über Ansible Galaxy verteilt. Um diese Rolle zu installieren, können Sie den folgenden Befehl verwenden.

$ ansible-galaxy install bmeme.drupal

Aktualisierung

Wenn Sie die Rolle aktualisieren möchten, müssen Sie den Parameter --force beim Installieren übergeben. Bitte überprüfen Sie den folgenden Befehl:

$ ansible-galaxy install --force bmeme.drupal

Vorabversion

Diese Rolle hat eine Vorabversion (genannt 0.5-beta1), die einen anderen Workflow und ein anderes Variablen-Schema verwendet. Diese Version ist vollständig veraltet und wird bei Bmeme nur aus Gründen der Rückwärtskompatibilität verwendet, verwenden Sie sie nicht!

Rollenvariablen

Verfügbare Variablen:

Variablenname Beschreibung Standard
drupal_project_dir Absoluter Pfad, in dem das Drupal-Projekt installiert wird oder werden soll /var/www/html
drupal_project_owner Der Systembenutzer, der das Projekt besitzt www-data
drupal_project_group Die Systemgruppe, die das Projekt besitzt www-data
drupal_project_composer_project Das Drupal-Composer-Projekt, das Sie frisch installieren möchten drupal/recommended-project
drupal_project_web_root Verzeichnis, in dem der Drupal-Core gespeichert ist. Abhängig von der Drupal-Distribution. web
drupal_site_name Name der Drupal-Website. Wird von drush während der Drupal-Installation verwendet. Ihre neue Drupal-Instanz
drupal_site_mail E-Mail der Drupal-Website. Wird von drush während der Drupal-Installation verwendet. [email protected]
drupal_site_lang Standard-Sprache der Drupal-Website. Wird von drush während der Drupal-Installation verwendet. de
drupal_account_mail E-Mail des Drupal-Kontos. Wird von drush während der Drupal-Installation verwendet. gleich wie drupal_site_mail
drupal_account_name Name des Drupal-Kontos. Wird von drush während der Drupal-Installation verwendet. admin
drupal_account_pass Passwort des Drupal-Kontos. Wird von drush während der Drupal-Installation verwendet. admin
drupal_db_schema Datenbankschema, das von Drupal verwendet wird. Verfügbare Optionen: mysql oder pgsql mysql
drupal_db_name Datenbankname. Wird von drush während der Drupal-Installation verwendet. drupal
drupal_db_user Datenbankbenutzer. Wird von drush während der Drupal-Installation verwendet. drupal
drupal_db_pass Passwort des Datenbankbenutzers. Wird von drush während der Drupal-Installation verwendet. drupal
drupal_db_host Datenbankhost-Adresse. Wird von drush während der Drupal-Installation verwendet. 127.0.0.1
drupal_db_port Port des Datenbankhosts. Wird von drush während der Drupal-Installation verwendet. 3306
drupal_profile Installationsprofil von Drupal. Siehe diesen Fehler minimal
drupal_composer_nodev Composer "nodev"-Option. Boolesch false
drupal_composer_prefer_dist Composer "prefer-dist"-Option. Boolesch false
drupal_composer_scaffold_nonamespace Verwenden Sie Composer ohne Namespace, um das Drupal-Scaffold zu installieren. Boolesch false

Arbeitsablauf

Diese Rolle führt drei Hauptaufgaben aus:

  • create: Erstellen eines frischen Drupal-Projekts mit Composer: Sie können das Composer-Projekt mit der Variablen drupal_project_composer_project anpassen. Diese Rolle erkennt automatisch, wenn ein Drupal-Projekt bereits existiert, und überspringt diesen Aufgabenblock.

  • install: Installieren der Drupal-Instanz mit Drush. Am Ende des Prozesses werden die Drupal-Konfigurationen automatisch im Verzeichnis {{ drupal_project_dir }}/config/sync exportiert. Diese Rolle erkennt automatisch, wenn die Drupal-Installation bereits existiert, und überspringt diesen Aufgabenblock.

  • build: Erstellen der Drupal-Instanz über Drush, indem vorhandene exportierte Konfigurationen installiert werden. Sie erkennt automatisch die Konfigurationen und führt den Aufgabenblock für den Aufbau aus.

Wenn von Grund auf neu gestartet wird, führt es nur die Aufgaben create und install aus.

Hooks

Sie können Ihre eigenen benutzerdefinierten Aufgaben mit den verfügbaren Hooks hinzufügen:

  • drupal_before_create: wird vor dem Aufgabenblock create ausgeführt. Wenn ein Drupal-Projekt bereits vorhanden ist, wird dieser Hook übersprungen.
  • drupal_after_create: wird nach dem Aufgabenblock create ausgeführt. Wenn ein Drupal-Projekt bereits vorhanden ist, wird dieser Hook übersprungen.
  • drupal_before_install: wird vor dem Aufgabenblock install ausgeführt. Wenn Drupal-Konfigurationen bereits vorhanden sind, wird dieser Hook übersprungen.
  • drupal_after_install: wird nach dem Aufgabenblock install ausgeführt. Wenn Drupal-Konfigurationen bereits vorhanden sind, wird dieser Hook übersprungen.
  • drupal_before_build: wird vor dem Aufgabenblock build ausgeführt. Wenn Drupal-Konfigurationen nicht vorhanden sind, wird dieser Hook übersprungen.
  • drupal_after_build: wird nach dem Aufgabenblock build ausgeführt. Wenn Drupal-Konfigurationen nicht vorhanden sind, wird dieser Hook übersprungen.

Bmeme Arbeitsweise

Bmeme verwendet diese Rolle, um die Erstellungs-, Installations- und Aufbauvorgänge eines Drupal-Projekts während des Entwicklungsprozesses zu automatisieren. Wir nutzen Docker als Entwicklungsumgebung, sowohl lokal als auch in entfernten Testinstanzen. Die Rolle wird innerhalb unserer Docker-Images php ausgeführt, die hier verfügbar sind. Die gleichen Images werden auch von dem Rollentest molecule verwendet.

Abhängigkeiten

Keine

Beispiel-Playbook

- hosts: webserver
  vars_files:
    - vars/main.yml
  roles:
    - geerlingguy.apache
    - geerlingguy.mysql
    - geerlingguy.php-versions
    - geerlingguy.php
    - geerlingguy.php-mysql
    - geerlingguy.composer
    - bmeme.drupal

Innerhalb von vars/main.yml

drupal_project_dir: /pfad/zum/meinem/projekt
drupal_site_name: Meine tolle Drupal-Instanz
drupal_after_build: "tasks/meine-nach-build-aufgaben.yml"

Wenn Sie diese Rolle verwenden möchten, um eine bestimmte Drupal-Distribution zu installieren (zum Beispiel: Lightning):

- hosts: webserver
  vars_files:
    - vars/main.yml
  roles:
    - geerlingguy.apache
    - geerlingguy.mysql
    - geerlingguy.php-versions
    - geerlingguy.php
    - geerlingguy.php-mysql
    - geerlingguy.composer
    - bmeme.drupal
      drupal_project_composer_project: "acquia/lightning-project:8.8.1"

Lizenz

MIT/BSD

Autoreninformation

Diese Rolle wurde 2020 von Bmeme erstellt.

Über das Projekt

Creates a Drupal project via composer, install it and re-build it by configs

Installieren
ansible-galaxy install bmeme.drupal
GitHub Repository
Lizenz
mit
Downloads
66.2k
Besitzer
Digital Factory