bmeme.drupal
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
Sammlungcommunity.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.
Creates a Drupal project via composer, install it and re-build it by configs
ansible-galaxy install bmeme.drupal