Drupal for Ops

DrupalOps is a Family of Tools & Community that leverages Drupal & Symfony for IT Infrastructure Management.

Why use Drupal for Ops?

  1. Great identity management & access control, including SSH key handling via the sshkeys.module.
  2. Great data modeling and storage that is easy to customize and extend.
  3. Can provide Web interface, command line interface, and REST APIs.
  4. Easy to extend, massive library of contributed add ons.
  5. Can be integrated with almost anything.
  6. Can be run almost anywhere.
  7. History of Success hosting large numbers of Drupal sites using Aegir Project.
  8. Acts as a DevOps Macro Service: All moving parts are contained inside the single Drupal codebase. One application, one programming language makes it much easier to understand, develop, and debug.


This project is inspired by the Aegir Project, DevShop, and all of the other great Drupal for Ops tools out there. As we progress, we will do our best to document all of the open source projects we can find that do similar Ops work using Drupal.

The creator, Jon Pugh, has been trying to figure out how to gather a community around something for years



There is currently no code whatsoever under the “drupalops” namespace.

However, all of these tools already exist in different forms, in Drupal code, mostly in Aegir 3.x modules.

Please post your thoughts in the issue queue, and follow along on Twitter as this concept evolves: https://twitter.com/DrupalOps

The basics will consist of a suite of Drupal modules that are NOT dependent on one another, which will allow many different use cases.

  • DrupalOps Servers Module: Basic Drupal entity representing a machine. Stores hostname, IP address, and generic data used for monitoring. (Similar to Hosting Servers module)
    • DrupalOps Cloud Module: Extends DrupalOps Servers module to allow creation of servers in any cloud provider. (Similar to Aegir Cloud, which currently supports DigitalOcean, Packet.net, and Softlayer)
    • DrupalOps Servers Ansible: Extends DrupalOps Servers module to allow automated configuration of servers using Ansible Galaxy roles. Turns your Drupal site into an Ansible Server Inventory: edit your ansible variables directly in the Drupal site, and use that site as a Ansible Remote Inventory, allowing isolated servers to pull their configuration over the internet. (Aegir Ansible module)
    • DrupalOps Servers Docker: Extends DrupalOps Servers module to give your Drupal site the power to launch and manage Docker containers. (Similar to Hosting Docker module).
    • DrupalOps Servers Rancher: Extends DrupalOps Servers & Docker module to allow Rancher to do the heavy lifting. (Attempts were made on this at DevShop Rancher module) and Provision Rancher module).
  • DrupalOps Users Module: Provides common fields and modules for Identity Management. SSH Key module. Realname module. TFA module.
  • DrupalOps Tasks module: Provides a basic task entity that stores task type, command, status, logs, parameters, task user, etc. (Similar to Hosting Tasks module)
  • DrupalOps Sites Module: Basic entity type representing a website. Stores domain names, assigned services, codebase repository, path, current git reference, etc. (Similar to Hosting Sites and Hosting Platforms modules) (Perhaps should be renamed to “App”)
  • DrupalOps Distros Module: Tooling to allow mass-hosting of Drupal install profiles use case, similar to Aegir Project, and the Hosting Distributions module. All code that assists in the Drupal-Distro-as-a-Service model should go here.
  • DrupalOps Projects Module: Basic entity type to group all the other entities logically. Similar to DevShop Projects module.
  • DrupalOps Teams Module: Basic entity type to manage groups of users.

Source: https://drupal.org/project/project_distribution/feed/all