I'm working on a small project where I need implement some kind of cloud architecture.

I'd like to deploy multiple Drupal installs among multiple servers; one would act as a domain controller and other as nodes. It should be simple to scale; adding nodes to the cluster would be as simple as cloning a node install and changing it's parameters (such as IP address and name). The new node will then announce itself to the controller which would update its nodes-list records.

I also like to be able to manage users in a centralized way; I would add users to the controller and assign them one or many nodes; once created it would sync to the target node(s) (e.g. create the user in the unix list as well as in drupal install on the target node).

Finally, once logged in the controller, the user would be able to do various operations such as:

  • download/upload files to nodes (on which he's granted to)
  • execute predefined shell commands such as starting/stopping services (probably as a module that would do all that stuff)

I hear that Drupal 7 has now some interesting file management modules in core; can they help in my case? Also, what would be the best communication protocol for accessing the different nodes from the controller?

Is it possible to have a kind of RPC call to a module (on target node) from the controller and get the result back ?

Any thoughts or starting points?

  • Would this 'cloud system' manage only drupal sites? Also if you add a node (server) via the controller wouldn't the controller already know about the node? Do you also want the node to announce itself to other nodes (What purpose will that solve?) if your architecture is controller driven.
    – Dipen
    May 2, 2011 at 14:57
  • 1
    I suggest you adopt different terms for your cloud entities. You are saying "node" when you mean a drupal instance within your cloud cluster, whereas the word "node" is already the main content entity name within Drupal, and it will be very confusing to describe your efforts and needs because of the overloaded "node" term usage. May 2, 2011 at 16:51

1 Answer 1


You might want to look at Aegir.
It will let you manage multiple Drupal sites across multiple servers; you can add new servers via the Aegir master controller and once the servers are known to the controller you can create complex Drupal installs via the UI (Aegir master) with db on one server and code on other, mix and match, etc.

One of the cool stuff is that Aegir can also take a drush make file and assemble a Drupal install for you; it supports Drupal distributions which let you not only install Drupal, but also Open Atrium, Pressflow, Open Publish, etc.

If I were you I would definitely look at Aegir even if it doesn't take care of all my needs as it will be the only logical place to start extending.

For an introduction see An introduction to the Aegir Hosting system.

There are so many Aegir videos online; these are some of my favorites:

If you like looking at code, here is the code for provisioning system which does all the magic: http://git.aegirproject.org/?p=provision.git;a=summary.

  • Thanks for the complete answer; but the purpose of this project is not to implement & manage multiple drupal instances (since i won't even touch the install after it's done) but instead having drupal as a 'cloud controller' which will orders to other nodes.
    – Disco
    May 3, 2011 at 9:18
  • 1
    Ok, that was the confusion with your question hence my comment above on the question. The line here "I'd like to deploy multiple Drupal installs among multiple servers" made me go ahead with my answer. If I were you I would still look at Aegir's provisioner as it lets you add "nodes" (servers) etc. What would be best if you can edit and rearrange your question to include usecases, as to what are your expectations from the system. BTW, do u know about chef, its a cloud automation tool (open source) but is a ruby utility, I have also been thinking of using it in drupal context.
    – Dipen
    May 3, 2011 at 10:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.