Import d’un site existant dans aegir depuis un dépôt git

Petit préambule pour bien comprendre le vocabulaire d’aegir.

Imaginons que vous ayez un site sur monurl.fr qui pointe sur /var/www/monsite (la plateforme) dans votre vhost avec un sous-répertoire /sites/monurl.fr (le site), le tout géré par votre dépôt git sous gitlab.

Pour faire simple aegir appelle un drupal sans base de donnée une plateforme et un drupal avec sa base de donné un site :

  • une plateforme au sens aegir, c’est le dépôt git d’un répetoire drupal avec sa branche courante (qu’on ne peut plus changer à postériori)
  • une site au sens aegir c’est : à l’intérieur d’une plateforme, un répertoire dans sites avec le settings.php (généré par aegir, il ne faut pas y toucher), une base de donnée, un alias, et un vhost

Etape 1 : créer la plateforme à partir du dépôt git

Une plateforme, c’est un répertoire PHP avec un drupal installé dedans, mais sans base de donnée associée (une plateforme peut contenir plusieurs sites).

http://aegir.monurl.fr/node/add/platform

Donner un nom « monsite » par exemple dans le BO aegir pour votre plateforme.

On relie la plateforme à un dépôt git avec sa branche sous la forme :

ssh://git@gitlab.monurl.fr:22443/mon-depot.git

Attention, il faut utiliser le protocole ssh car il y a une clé ssh définie sur gitlab et sur la VM pour pouvoir cloner sans mot de passe. Via https ça ne fonctionnera pas.

Choisir le mode git pull (Git pull task pour des pull manuels).

Aegir va cloner le dépôt du site dans le répertoire

/var/aegir/platforms/monsite

Il va automatiquement repérer les sites dans /var/aegir/platforms/monsite/sites/ et tenter de les importer automatiquement, mais ça ne va pas fonctionner. C’est normal, pas de panique 😉

Idéalement, il faudrait que répertoire n’existe pas dans le dépôt git.

Etape 2 : suppression du site importé

Il faut donc supprimer le répertoire du site aegir :

# rm -r /var/aegir/platforms/monsite/sites/monurl.fr/

et supprimer le nœud du site (automatiquement créé) dans aegir aussi :

http://aegir.monurl.fr/node/add/platform#overlay=admin/content : supprimer le noeud « monurl.fr »

Ensuite, il faut recréer le site « à vide » puis le « remplir » avec le vrai site.

Pourquoi cette étape de suppression avant la re-création ?

Parce que aegir lors de l’import est censé créer une base de donnée reconnue par aegir pour le nouveau site. Comme l’import plante, il ne crée pas la base de donnée.

Il faut supprimer et re-créer pour qu’il fasse les choses proprement et qu’on ai cette fameuse base de donnée par défaut gérée par aegir, dans laquelle on va pouvoir importer notre site.

Etape 3 : création du site

Cette fois on va rattacher le site à une plateforme, ce qui revient à créer une base de donnée, un répertoire dans /sites, et un settings.php qui relie les deux.

http://aegir.monurl.fr/node/add/site

dans le domain name mettre : monurl.fr

Laisser vide le deploy from git (Repository URL : vide).

Attention à bien choisir la plateforme récemment crée pour que le site soit créé au bon endroit.

A ce moment la aegir fait plusieurs choses :

  • il crée une base de donnée vide : monurl_0
  • il lance l’installation par défaut de drupal
  • il crée un alias drush : su – aegir -c « drush status » : /var/aegir/.drush/monurl.fr.alias.drushrc.php
  • il crée un vhost qui contient des paramètres utilisées dans le settings.php aussi : port 80 namevhost monurl.fr (/var/aegir/config/server_master/apache/vhost.d/monurl.fr:1)

NB : monurl.fr existe déjà dans votre ancien vhost. Si vous regardez votre configuration apache, vous verrez qu’il y en a 2, mais celui d’aegir est prioritaire.

Etape 4 : import des données

Il y a deux choses à faire, comme pour tout clonage de site : récupérer les fichiers dans files et récupérer la base de donnée initiale.

#cp -a /var/www/monsite/sites/monurl.fr/files /var/aegir/platforms/monsite/sites/monurl.fr/
# chown -R aegir:aegir /var/aegir/platforms/monsite/sites/monurl.fr/files

#mysqldump -u root -p'PASSWORD' monsite | su - aegir -c 'drush @monurl.fr sqlc'

Etape 5 (optionnel) : supprimer l’ancien site

Si on veut supprimer la base de donnée initiale :

#cd /var/www/monsite/sites/monurl.fr ; drush sql-drop -y

Si on ne veut supprimer que le site :

#rm -r /var/www/monsite/sites/monurl.fr

Si on n’a plus besoin de la plateforme :

#rm -r /var/www/monsite

Etape 6 : mise à jour du site

A partir de la, vous pouvez gérer votre site dans aegir, et donc, demander un backup d’un simple click, cloner votre site, et plein d’autres choses (en fonction des sous-modules que vous aurez activés).

Pour faire une mise à jour (si vous avez updaté votre dépôt git) voici les étapes à suivre.

Faire un git pull sur la plateforme, dans les tâches : http://aegir.monurl.fr/hosting/c/platform_monsite

Faire le « Revert features » et le « Run db updates » sur les tâches du site : http://aegir.monsite.fr/hosting/c/monurl.fr

On peut faire la même chose en ligne de commande, mais il faut être en user aegir pour que ça fonctionne.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *