Drupal DRUSH: Komplexe CI Vorgänge mittels Drush und Shell Skripten automatisieren (z.B. Dev > Staging)

Drupal DRUSH: Komplexe CI Vorgänge mittels Drush und Shell Skripten automatisieren (z.B. Dev > Staging)

Drush ist ein sehr hilfreiches Werkzeug zur Steuerung von Drupal über die Konsole. Ich werde in diesem Beitrag jedoch weniger auf Drush selbst eingehen, als vielmehr auf eine Nutzung von Drush im "größeren" Kontext.

Häufig wird Drush als typisches Werkzeug in der Entwicklung und Pflege von Drupal Websites verwendet. Nicht selten entwickeln sich dabei typische Abfolgen von Befehlen, also Workflows.
Besonders häufig entstehen solche Workflows in wiederkehrenden Kontexten, wie dem Deployment einer Website, zum Beispiel von einem Entwicklungs (dev)-System auf ein Test-/Staging-System.

Hier spielen Drush Befehle wie "rsync" "sql-sync" "vset" oder auch drush-unabhängige Shell-Befehle eine wichtige Rolle. Um diese nicht immer wieder neu eingeben zu müssen, oder mithilfe anderer Tools zu automatisieren, kann man je Workflow ein kleines Shell-Script schreiben.

Ein Beispiel dafür habe ich Euch nachfolgend vorbereitet:

#!/bin/bash
echo "==============================="
echo "Syncing @self data to @staging"
yes | ./drush rsync @self @staging
echo "==============================="
echo "==============================="
echo "Syncing @self database to @staging"
./drush sql-sync @self @staging --no-cache --sanitize --yes
echo "==============================="
echo "Setting variables on @staging"
./drush @staging vset --always-set shield_user "my-user"
./drush @staging vset --always-set shield_pass "my-pass"
./drush @staging vset --always-set error_level 0
echo "==============================="
echo "FINISHED @self ==> @staging SUCCESSFULLY!"

Wenn Euch dieser Tipp geholfen hat oder ihr Unterstützung durch unser DROWL.de Drupal Spezialisten Team wünscht, hinterlasst gerne einen Kommentar oder treten mit uns in Kontakt.

Dazu passend noch einige Linktipps zum Deployment mit Drush:

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.

More information about formatting options