About the Drupal 8 version of DRD: This will be a complete rewrite of the platform and the roadmap can be found here. For anyone interested, please get in touch, we are also looking for co-mainteiners as this is going to become a huge effort.
This module is for system administrators. It's a tool to monitor and manage any number of Drupal installations at once and it's built to be extensible by other modules. Since version 2.X this module also comes with the highest level of security where as all communication between the dashboard and each of the cores is AES encrypted, hence the dependency (see below). Optionally the monitoring data will be made visible in nice graphs if the Google Chart API is available.
Dashboard: It consists of filterable lists of Cores or Domains including a lot of detailed information about each of them and also an extensible list of actions that can be performed on selected cores or domains. The dashboard is only available for Drupal 7.
Monitoring: With all these information coming on from the Cores and Domains, we can monitor our platforms and configure specific checks.
Remote actions: To update information or to do maintenance on our Cores and Domains we can execute remote actions. Clear cache or run cron on any specific number of Domains.
Drush Support: This is available since the 7.x-2.4 release. This allows to perform DRD actions as drush commands and also makes all Drush commands from remote domains available as DRD actions in the UI. Details see below.
How it works
When installing DRD and adding a core to the dashboard by providing one of the domains of that core, the dashboard adds that core entity to the database and performs the following actions:
- Run a script on the remote core to install the module drd_server for the given domain
- Send the encryption settings from DRD to the remote core. To be able to do this, you have to insert the IP address of the DRD Server to the settings of “drd_server” module on your remote core. A link to get there directly is provided in DRD
- After that, DRD is reading all available domains from the remote core and updates the encryption keys for each of the domains
- Then, DRD is reading all available actions from the remote core and domain
This is repeated for each new Core you're adding to your dashboard. That provides you with a list of all Cores including a lot of additional information, i.e. the number of hosted domains on each Core. You can now always switch between the Cores overview and the domain list. In both of those lists you can always select one or more items and then select one of the available actions from the drop-down above the list to execute.
Drush is supported by the DRD module, so it can be used on the console of the Drupal instance that hosts the dashboard. The following drush commands are supported:
- drd-list-actions List all the available DRD actions in your network, including those actions that are available from remote domains and from third party modules.
- drd-list-cores Provide a list of all cores in your DRD dashboard.
- drd-list-domains Provide a list of all domains in your DRD dashboard.
- drd-list-tags Provide a list of all tags assigned to cores and domains in your DRD dashboard.
- drd-action Perform any action on any number of cores and domains in your network.
All these commands can be tailored toward your requirements by using options in the command line, i.e. you can use exactly the same filters as in the dashboard to perform the actions to any subset of cores and domains only. The syntax and all options are fully documented when using
drush help command
This integration allows to automate a lot of very useful tasks, especially if you manage a lot of different Drupal installations. Here are some examples of what you could include into a crontab of your DRD server:
30 5 * * * drush @drd drd-action drd.server.domains --filter-status=1
45 5 * * * drush @drd drd-action drd.list.updates --filter-status=1
These two cronjobs are executed nightly at 5:30am and 5:45am, the first one looks into all installed cores if there have been any changes to the domains hosted by that Drupal installation and the second is looking into all domains on all cores and collects the latest data about available updates of Drupal core, modules and themes. Those details can then be looked at in an aggregated format when going to http://www.example.com/admin/drd/modules where you can see all components for all your Drupal sites in your entire network. Drupal administration has never been easier.
It also works the other way round: all drush commands from all your remote Drupal domains can be made available as actions in DRD, so that you can treat DRD as the graphical front-end to Drush - shall we call it the Drush-UI?
Certainly, the drush integration will see many more useful things in the future. Those implemented so far are just those that have been most obvious. We are more than happy to listen to your ideas and requirements and want to encourage you to file your ideas, feature requests and patches in the issue queue.
More about DRD and Drush
There is a blog series available that focuses on all aspects of the DRD and Drush integration. If you're interested, please get started at https://www.paragon-es.de/blog/drd-and-drush-part-1-4. The second part describes how to leverage DRD actions from the command line.
Here is what we're planning for the next few release:
- Monitoring and alerts
- Supporting logs on the remote cores and domains
- Provide sample modules to demonstrate extensibility and the API
- Query remote databases
Documentation and README
CHART API - https://www.drupal.org/project/chart