bmeme.drupal

Workflow Maintenance MIT license

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.

À propos du projet

Creates a Drupal project via composer, install it and re-build it by configs

Installer
ansible-galaxy install bmeme.drupal
Licence
mit
Téléchargements
66.2k
Propriétaire
Digital Factory