bmeme.drupal
Rôle Ansible : Drupal
Créer, Installer et Construire un projet Drupal.
Il s'agit du premier rôle Ansible publié par Bmeme, utilisé dans notre processus de développement Drupal. Il a été inspiré par d'autres rôles que nous utilisons et qui sont très bons :
Exigences
Pour utiliser correctement ce rôle, vous aurez besoin d'une pile LAMP/LEMP classique :
- un serveur Web standard (recommandé : Apache ou Nginx)
- base de données MySQL/PostgreSQL
- interpréteur PHP (7.x ou dernière version)
- Composer (recommandé :
geerlingguy.composer
)
Drush est une dépendance nécessaire que ce rôle fournira dans votre projet Drupal.
Dépendances
- collection
community.mysql
- collection
community.general
Installation
Il s'agit d'un rôle Ansible distribué via Ansible Galaxy. Pour installer ce rôle, vous pouvez utiliser la commande suivante.
$ ansible-galaxy install bmeme.drupal
Mise à jour
Si vous souhaitez mettre à jour le rôle, vous devez passer le paramètre --force lors de l'installation. Merci de vérifier la commande suivante :
$ ansible-galaxy install --force bmeme.drupal
Version préliminaire
Ce rôle a une version préliminaire (appelée 0.5-beta1) qui utilise un workflow différent et un schéma de variables différent. Cette version est totalement obsolète et utilisée par Bmeme uniquement pour la compatibilité descendante, ne l'utilisez pas !
Variables du rôle
Variables disponibles :
Nom de la variable | Description | Valeur par défaut |
---|---|---|
drupal_project_dir |
Chemin absolu où le projet Drupal est ou doit être installé | /var/www/html |
drupal_project_owner |
L'utilisateur système qui possède le projet | www-data |
drupal_project_group |
Le groupe système qui possède le projet | www-data |
drupal_project_composer_project |
Le projet composer Drupal que vous souhaitez utiliser pour une nouvelle installation | drupal/recommended-project |
drupal_project_web_root |
Répertoire où se trouve le cœur de Drupal. Cela peut dépendre de la distribution Drupal. | web |
drupal_site_name |
Nom du site Drupal. Utilisé par drush lors de l’installation de Drupal. | Votre nouvelle instance Drupal |
drupal_site_mail |
Mail du site Drupal. Utilisé par drush lors de l'installation de Drupal. | [email protected] |
drupal_site_lang |
Langue par défaut du site Drupal. Utilisé par drush lors de l'installation de Drupal. | en |
drupal_account_mail |
Mail du compte Drupal. Utilisé par drush lors de l'installation de Drupal. | même que drupal_site_mail |
drupal_account_name |
Nom du compte Drupal. Utilisé par drush lors de l'installation de Drupal. | admin |
drupal_account_pass |
Mot de passe du compte Drupal. Utilisé par drush lors de l'installation de Drupal. | admin |
drupal_db_schema |
Schéma de base de données à utiliser par Drupal. Options disponibles : mysql ou pgsql |
mysql |
drupal_db_name |
Nom de la base de données. Utilisé par drush lors de l'installation de Drupal. | drupal |
drupal_db_user |
Utilisateur de la base de données. Utilisé par drush lors de l'installation de Drupal. | drupal |
drupal_db_pass |
Mot de passe de l'utilisateur de la base de données. Utilisé par drush lors de l'installation de Drupal. | drupal |
drupal_db_host |
Adresse du serveur de base de données. Utilisé par drush lors de l'installation de Drupal. | 127.0.0.1 |
drupal_db_port |
Port du serveur de base de données. Utilisé par drush lors de l'installation de Drupal. | 3306 |
drupal_profile |
Profil d'installation de Drupal. Voir ce bug | minimal |
drupal_composer_nodev |
Option "nodev" de Composer. Booléen | false |
drupal_composer_prefer_dist |
Option "prefer-dist" de Composer. Booléen | false |
drupal_composer_scaffold_nonamespace |
Utiliser composer sans espace de noms pour installer Drupal Scaffold. Booléen | false |
Flux de travail
Ce rôle exécute trois tâches principales :
- create : Créer un nouveau projet Drupal en utilisant composer : vous pouvez personnaliser le projet composer à l'aide de la variable
drupal_project_composer_project
. Ce rôle reconnaît automatiquement lorsque un projet Drupal existe déjà et saute cet ensemble de tâches. - install : Installer l'instance Drupal en utilisant drush. À la fin du processus, les configurations Drupal sont automatiquement exportées dans le répertoire
{{ drupal_project_dir }}/config/sync
. Ce rôle reconnaît automatiquement lorsque l'installation de Drupal existe déjà et saute cet ensemble de tâches. - build : Construire l'instance Drupal via drush en installant à partir des configurations exportées existantes. Il reconnaît automatiquement les configurations et exécute l'ensemble de tâches de construction.
En commençant à zéro, il ne réalise que les tâches create et install.
Hooks
Vous pouvez ajouter vos tâches personnalisées en utilisant les hooks disponibles :
drupal_before_create
: exécuté avant l'ensemble de tâches create. Si un projet Drupal est déjà présent, ce hook sera ignoré.drupal_after_create
: exécuté après l'ensemble de tâches create. Si un projet Drupal est déjà présent, ce hook sera ignoré.drupal_before_install
: exécuté avant l'ensemble de tâches install. Si les configurations Drupal sont déjà disponibles, ce hook sera ignoré.drupal_after_install
: exécuté après l'ensemble de tâches install. Si les configurations Drupal sont déjà disponibles, ce hook sera ignoré.drupal_before_build
: exécuté avant l'ensemble de tâches build. Si les configurations Drupal ne sont pas disponibles, ce hook sera ignoré.drupal_after_build
: exécuté après l'ensemble de tâches build. Si les configurations Drupal ne sont pas disponibles, ce hook sera ignoré.
Méthode de travail de Bmeme
Bmeme utilise ce rôle pour automatiser les opérations de création / installation / construction d'un projet Drupal pendant son processus de développement. Nous utilisons Docker comme environnement de développement, localement et sur des instances de test distantes.
Le rôle est exécuté au sein de nos images Docker php
disponibles ici.
Les mêmes images sont également utilisées par le test du rôle molecule.
Dépendances
N/A
Exemple de Playbook
- hosts: webserver
vars_files:
- vars/main.yml
roles:
- geerlingguy.apache
- geerlingguy.mysql
- geerlingguy.php-versions
- geerlingguy.php
- geerlingguy.php-mysql
- geerlingguy.composer
- bmeme.drupal
Dans vars/main.yml
drupal_project_dir: /chemin/vers/mon/projet
drupal_site_name: Mon Instance Drupal Géniale
drupal_after_build: "tasks/mes-tâches-après-construction.yml"
Si vous souhaitez utiliser ce rôle pour installer une distribution Drupal spécifique (par exemple : Lightning) :
- hosts: webserver
vars_files:
- vars/main.yml
roles:
- geerlingguy.apache
- geerlingguy.mysql
- geerlingguy.php-versions
- geerlingguy.php
- geerlingguy.php-mysql
- geerlingguy.composer
- bmeme.drupal
drupal_project_composer_project: "acquia/lightning-project:8.8.1"
Licence
MIT/BSD
Informations sur l'Auteur
Ce rôle a été créé en 2020 par Bmeme.
Creates a Drupal project via composer, install it and re-build it by configs
ansible-galaxy install bmeme.drupal