I needed a role to manage Drupal modules and themes, and I haven’t found something like It, so I made a new role, javaguirre.drupal_deps.
I prefer to have smaller roles usually controlling a package application or service than having an all-in-one role. In my opinion roles should manage only one service/application so It’s easy to exchange or combine with others, easier to maintain too.
That’s how I made the role, It manages and installs modules and themes through Drush, It also sets the default theme, The role is in Github. :-)
You can install It using
ansible-galaxy install javaguirre.drupal_deps
or you could create the
requirements.yml file and install It using git if you like:
# requirements.yml --- - name: javaguirre.drupal_deps src: git+https://github.com/javaguirre/ansible-drupal-dependencies-role.git
ansible-galaxy with the
ansible-galaxy install -r requirements.yml
The role defines for now these variables:
--- drush_bin_path: "/usr/local/bin/drush" drupal_path: "/var/www/drupal" drupal_user: apache drupal_core_modules:  drupal_themes:  drupal_modules:  drupal_other_modules:  drupal_default_theme: bartik
A playbook example on how to use It would be like this:
- hosts: all remote_user: vagrant become: no vars: drush_bin_path: "/usr/bin/drush" drupal_user: http drupal_core_modules: - contact drupal_themes: - bootstrap drupal_modules: - ctools - entity - ldap drupal_other_modules: - simpletest drupal_default_theme: bootstrap role: - javaguirre.drupal_deps
This playbook will enable the core module
contact if It’s not enabled, It will install the
bootstrap theme and
ldap modules. It will install the
simpletest module on
/modules/ (the installation path is different, that’s why It’s a different module list) and will enable the
bootstrap theme as the default for the current Drupal installation.
In the following days I will work on fixing the tests in Travis CI and adding some tasks regarding the cache or modules and themes uninstall.
If you have more suggestions, please, let me know!