Direkt zum Inhalt
11. August 2014

Ausführen von DRD-Aktionen aus Drush

by Jürgen Haas

Drupal Remote Dashboard (DRD) unterstützt Drush vollständig, und zwar auf zwei Arten: DRD stellt alle seine Aktionen als Drush-Befehle zur Verfügung und DRD kann die Ausführung von Drush-Befehlen auf Remote-Domains auslösen. Dieser Blogbeitrag ist Teil einer Serie (siehe Teil 1 von 4), die alle Möglichkeiten rund um diese beiden mächtigen Werkzeuge beschreibt. Dies ist Teil 2, der beschreibt, wie man alle DRD-Aktionen von der Kommandozeile aus mit Hilfe von Drush auslösen kann.

Warum ist das nützlich? Viele Admins und Entwickler sind Tastatur-Junkies und hassen die Vorstellung, ihre Drupal-Serverfarm zu überwachen und zu verwalten, indem sie in der DRD-Oberfläche herumklicken. Die ganze Macht von DRD liegt nun wieder auf dem Terminal und in Erweiterung dieser Idee hilft dies, alle Aktionen von DRD zu automatisieren, indem Drush in Crontabs verwendet wird, z.B. um nach Updates für alle Domains auf allen Drupal-Cores in einem ganzen Netzwerk zu suchen.

Voraussetzungen

Wenn DRD (Version 2.4 oder höher) auf Ihrem Haupt-Drupal-Core installiert und konfiguriert ist, der alle anderen Drupal-Cores überwacht, dann brauchen Sie nur Drush auf demselben Host und Zugang zur Konsole. Das ist alles, was Sie brauchen, um Zugang zu all den schönen Dingen zu bekommen, die unten beschrieben werden.

Eine Liste der Drush-Befehle von DRD

drush help --filter=drd
Alle Befehle in drd: (drd)
  drd-action (drda):        Löst eine DRD-Aktion aus.
  drd-list-actions (drdla): Listet alle verfügbaren Aktionen für Ihr DRD-Netzwerk auf.
  drd-list-cores (drdlc):   Listet alle Kerne in Ihrem DRD-Netzwerk auf.
  drd-list-domains (drdld): Listet alle Domänen für alle oder einige DRD-Cores auf.
  drd-list-tags (drdlt):    Listet alle verfügbaren Tags in Ihrem DRD-Netzwerk auf.

Globale Optionen

Die folgenden Optionen sind für die Drush-Befehle von DRD verfügbar

Allgemeine Optionen:
 --filter-cores Filtert die Liste nach der/den Core-ID(s), zu denen sie gehören
 --filter-drupal-versions Filtert die Liste nach der Drupal-Version des Kerns
 --filter-ssl Filtert die Liste nach der ssl-Nutzung der Domain: yes=1|no=0
 --filter-status Filtert die Liste nach dem Status der Domain: active=1|disabled=0
 --filter-tags Filtert die Liste nach den Tags des Kerns

Zusätzliche Domain-Optionen:
 --filter-domains Filtert die Liste nach Domänen-ID(s), zu denen sie gehören
 --filter-errors Filtert die Liste nach dem Fehlerstatus
 --filter-installed Filtert die Liste nach dem Installationsstatus
 --filter-warnings Filtert die Liste nach dem Status der Warnungen

Zusätzliche Option zum Auslösen einer Aktion:
 --ask Aufforderung an den Benutzer, den zu bearbeitenden Kern und/oder die Domäne auszuwählen

Optionen für die Aktionsliste:
 --mode Begrenzt die aufzulistenden Aktionen nach ihrem Modus: Standardmäßig alle, kann aber auch any|server|domain sein

Optionen für die Tag-Liste:
 --mode Begrenzt die aufzulistenden Tags nach ihrem Modus: standardmäßig auf alle, kann aber auch Server oder Domain sein

DRD-Aktionen, die vom Kern unterstützt werden: Verwenden Sie drush drd-list-actions, um eine Liste aller Aktionen zu erhalten, die von Ihrem System unterstützt werden.

Drush-Hauptbefehl drd-action

Um eine der Aktionen auszulösen, die auch über die DRD-Benutzeroberfläche verfügbar sind, verwenden Sie einfach den drush-Befehl drd-action. Hier sind ein paar Beispiele:

Prüfe auf Projektaktualisierungen für alle Domains:

drush drd-action drd.list.updates

Prüfe auf allen Domains, auf denen Drupal Version 7.28 läuft, auf Projektaktualisierungen:

drush drd-action drd.list.updates --filter-drupal-version=7.28

Aktivieren Sie den Wartungsmodus auf allen Domains:

drush drd-action drd.switch.maintenance --maintenancemode=1

Wählen Sie eine Aktion aus einer Liste aller verfügbaren Aktionen aus, geben Sie nur keine Aktion zum Auslösen an:

drush drd-action

Weitere Hilfe erhalten

Globale Optionen sind oben beschrieben und einige der DRD-Aktionen haben zusätzliche Optionen oder Parameter. Um diese herauszufinden, gibt es eine spezielle Verwendung für drd-action, die help:[action-name] als einzigen Parameter nimmt. Beispiel:

Hilfe für die Aktion drd.switch.maintenance abrufen:

drush drd-action help:drd.switch.maintenance

Filtern von Kernen und Domänen

Mit den oben beschriebenen Filteroptionen kann jede der Aktionen auf einige der Domänen beschränkt werden, die von DRD verwaltet werden. Wird kein Filter angegeben, so wird jede angegebene Aktion auf allen verfügbaren Domänen ausgelöst.

Eine weitere Möglichkeit, eine Aktion auf eine oder wenige Domains zu beschränken, bietet die Option --ask. Dadurch erhalten Sie eine Liste aller Kerne oder Domänen und können auswählen, auf welchen davon die Aktion ausgelöst werden soll.

Tips & Tricks

Interessieren Sie sich für ein paar aussagekräftige Anwendungsbeispiele von DRD via Drush? Wir stellen einige davon in der folgenden Liste zur Verfügung und werden diese Liste im Laufe der Zeit erweitern, wenn wir weitere Beispiele finden.

Erhalten Sie eine Liste der verfügbaren Aktionen, wählen Sie eine aus und wählen Sie dann Kerne oder Domänen, auf denen diese Aktion ausgelöst werden soll:

drush drd-action --ask

Suchen Sie jede Nacht um 2 Uhr nach neuen Domains auf allen aktivierten Cores, konfigurieren Sie crontab mit der folgenden Zeile:

0 2 * * * drush @DRDALIAS drd-action drd.server.domains --filter-status=1 2>&1

Suchen Sie jede Nacht um 3 Uhr nach Updates für alle aktivierten Domains, konfigurieren Sie crontab mit der folgenden Zeile:

0 3 * * * drush @DRDALIAS drd-action drd.list.updates --filter-status=1 2>&1

Haben Sie eine andere Lösung gefunden, die Sie mit der Community teilen möchten? Hinterlassen Sie einen Kommentar, und wir werden Ihre Liste gerne ergänzen.

Neuen Kommentar hinzufügen

Klartext

  • Keine HTML-Tags erlaubt.
  • Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Website- und E-Mail-Adressen werden automatisch in Links umgewandelt.
CAPTCHA
Diese Sicherheitsfrage überprüft, ob Sie ein menschlicher Besucher sind und verhindert automatisches Spamming.