It would assist us in our quest to have Aegir run deployments against multiple servers if we were able to pick and choose which jobs ran. In particular running provision twice against two webservers (sharing a DB server) will cause two databases to be created: site_n and site_n_0.

The same would likely be the case with drush aliases: it won't work to run the same set of commands against all the servers wholesale. Some (like database creation and install.php) should run once.

Comments

drumm’s picture

Issue tags: +multiserver

Tagging

adrian’s picture

this is why i don't like the multi-relationship thing directly..

it makes the logic for the front end more complex.

anarcat’s picture

As I said in #366418: 0.4: multiple web server support:

Basically, what we want is a way to disable the provision_db_server and provision_platform "modules" in the drush backend. That's because we don't want to touch the filesystem more than once if we have a shared file server (which is what Platform does, really). Same for the DB server. This can probably be done by hooking those modules into commandline flags through #691174: Allow drush command files to define functions that control whether or not they will be loaded.

So if anyone works on this, they should look at the hook_load for db_server and platform... Basically, I think we should have a --disable-db_server and --disable-platform flags...

Also, I don't see how we can escape that at all: we'll need to have something in provision to do only parts of the process... That's the case regardless of how the frontend is coded.

adrian’s picture

I'm actually working on something like this on the backend at the moment.

Instead of having provision_apache and provision_mysql ... you have provision/http and provision/db , which have 'engines' for the different implementations of the services.

ie: provision/db/mysql , or provision/http/apache.

In a similar way you can have a dummy or null implementation, which does nothing for db/whatever.
This will be triggered by an option for the type of service.

drumm’s picture

The db end of this is working in the dev-serices branch http://git.aegirproject.org/?p=provision.git;a=shortlog;h=refs/heads/dev...

adrian’s picture

Status: Active » Closed (works as designed)

This is done differently, by design