in drupal vagrant ansible virtualbox cms vm ~ de lecture.

Drupal 8 : Installation du CMS à partir d'une VM

Choisir son CMS est une tâche difficile (CRUD, Frontend, Headless, Cloud, Hosted ?), j'en parlerai d'ailleurs dans un prochain billet, la suite de celui-ci concerne l'installation du CMS Drupal, 100% open-source, et deux choix s'offrent à nous :

  • Installation manuelle en suivant la documentation officielle, attendez-vous à devoir installer la stack suivante : Apache, MySQL, PHP, Composer ...
  • Utilisation d'une VM avec Drupal VM en installant simplement les outils nécessaires à l'exploitation de l'image : Vagrant, VirtualBox et Ansible

drupal

J'ai choisi la deuxième option et voici la façon dont je m'y suis pris pour obtenir une version locale de Drupal 8 sur mon environnement de développement.

Pré-requis

Le logiciel Drupal requiert les caractéristiques suivantes au niveau de la machine hôte :

  • Processeur Intel Core avec VT-x activé
  • Au moins 4 Go de RAM (plus c'est encore mieux)
  • Un disque dur SSD (pour une plus grande vitesse avec les dossiers synchronisés)

Drupal VM requiert les outils suivants :

  • Vagrant 1.8.6
  • VirtualBox 5.1.10+
  • Ansible 2.2.x

Vagrant 2.0.1

Suppression d'une ancienne version :

$ sudo apt-get remove --auto-remove vagrant
$ rm -r ~/.vagrant.d

Installation de la dernière version :

$ wget https://releases.hashicorp.com/vagrant/2.0.1/vagrant_2.0.1_x86_64.deb
$ sudo dpkg -i vagrant_2.0.1_x86_64.deb

Constat :

$ vagrant version
Installed Version: 2.0.1
Latest Version: 2.0.1

VirtualBox 5.2

Suppression d'une ancienne version :

$ sudo apt remove --purge virtualbox*

Installation de la dernière version :

$ sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" >> /etc/apt/sources.list.d/virtualbox.list'
$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
$ sudo apt update
$ sudo apt install virtualbox-5.2

Constat :

$ virtualbox

Capture-du-2018-01-03-21-49-05

Ansible 2.4.2

Suppression d'une ancienne version :

$ sudo apt-get remove --auto-remove ansible

Installation de la dernière version :

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible nfs-kernel-server

Constat :

$ ansible --version
ansible 2.4.2.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/xxxxxx/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609]

Drupal VM 4.7

Drupal VM permet de créer des environnements de développement Drupal rapidement et simplement en mettant à disposition des machines virtuelles ou des conteneurs Docker.

  • Installation

Les instructions officielles sont ici, voici ce que ça donne à la console :

$ git clone https://github.com/geerlingguy/drupal-vm
$ cd drupal-vm
$ git checkout tags/4.7.0
$ vagrant up

L'installation prend un peu de temps, mais c'est terminé, il n'y a plus qu'à patienter.

Bringing machine 'drupalvm' up with 'virtualbox' provider...
==> drupalvm: Box 'geerlingguy/ubuntu1604' could not be found. Attempting to find and install...
    drupalvm: Box Provider: virtualbox
    drupalvm: Box Version: >= 0
==> drupalvm: Loading metadata for box 'geerlingguy/ubuntu1604'
    drupalvm: URL: https://vagrantcloud.com/geerlingguy/ubuntu1604
==> drupalvm: Adding box 'geerlingguy/ubuntu1604' (v1.1.7) for provider: virtualbox
    drupalvm: Downloading: https://vagrantcloud.com/geerlingguy/boxes/ubuntu1604/versions/1.1.7/providers/virtualbox.box
==> drupalvm: Box download is resuming from prior download progress
    drupalvm: Progress: 34% (Rate: 133k/s, Estimated time remaining: 2:01:03)

....
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
...

==> drupalvm: Machine 'drupalvm' has a post `vagrant up` message. This is a message
==> drupalvm: from the creator of the Vagrantfile, and not from Vagrant itself:
==> drupalvm: 
==> drupalvm: Your Drupal VM Vagrant box is ready to use!
==> drupalvm: * Visit the dashboard for an overview of your site: http://dashboard.drupalvm.test (or http://192.168.88.88)
==> drupalvm: * You can SSH into your machine with `vagrant ssh`.
==> drupalvm: * Find out more in the Drupal VM documentation at http://docs.drupalvm.com
  • Accès

Une fois l'installation terminée, il suffit d'ouvrir son navigateur préféré et d'accéder à l'adresse suivante : http://drupalvm.test (qui correspond à l'IP locale 192.168.88.88).
Pour un accès administrateur il faut saisir le login "admin" avec le mot de passe "admin".

drupal_install-1

drupal_sys_info

Problème rencontré

Si comme moi vous rencontrez un problème lors de l'installation de modules/thèmes en passant par l'Upload Manager (onglet "Extend"), Accès FTP obligatoire, le contournement est simple :

  • télécharger le fichier mon_module.tar.gz
  • déposer-le dans le répertoire modules de votre Drupal : /home/xxxxx/drupal/web/sites/default/modules
  • dézipper-le : tar -zxvf mon_module.tar.gz
  • retourner dans l'onglet "Extend" et constater que le module est à nouveau présent et prêt à être activé (ici JSON API) :

drupal_extend