Le développement local devient simple et rapide avec Drupal VM

Le développement local devient simple et rapide avec Drupal VM

Mardi, Avril 4, 2017

Le projet DrupalVM vise à créer un environnement de test/développement local simple et rapide, et à introduire de nouveaux développeurs au merveilleux monde du développement Drupal sur des machines virtuelles locales (en remplacemement de Wamp,etc)

La première chose à faire est d'installer VirtualBox et Vagrant pour gérer la machine virtuelle.
Je conseille si besoin de lire l'article "Créer une machine virtuelle linux sous windows avec vagrant"  pour comprendre leur fonctionnement plus en détail.
 

Installer une machine virtuelle Drupal VM


Télécharger l'archive DrupalVM.

Une fois dézippée, il est possible de déplacer et renommer le dossier comme on le souhaite.
Il contiendra les fichiers de configuration de la VM ainsi que les fichiers de vos sites drupal (en partage natif).
Pour ma part je le place à la racine de c: dans un dossier "VMs" et je le renomme en "drupalVM".
Ceci fait il est possible de lancer le bash dans ce dossier (fichier > ouvrir l'invite de commande windows) et d'entrer la commande vagrant up :

C:\VMs\drupalVM>vagrant up

Voilà, l'installation par défaut de drupalVM se lance et après quelques minutes vous pourrez, si tout s'est bien passé, voir le tableau de bord dans votre navigateur à l'url http://192.168.88.88.
Magique : Drupal VM installe par défaut un site drupal 8 grâce à composer ! Ce qui est une bonne pratique d'installation encouragé par drupal.
 

Personnaliser la configuration de notre drupal VM


Le fichier default.config.yml contient les paramètres par défaut de la VM.
Il est possible de personnaliser cette configuration de base en créant un fichier config.yml au même niveau que default.config.yml.
Il suffit ensuite de n'écrire dans ce fichier que les variables de configuration que nous souhaitons supplanter. Par exemple :

vagrant_hostname: drupalvmTest.dev
vagrant_synced_folders:
  # The first synced folder will be used for the default Drupal installation, if
  # any of the build_* settings are 'true'. By default the folder is set to
  # the drupal-vm folder.
  - local_path: ./www
    destination: /var/www
    type: nfs
    create: true

php_version: "5.6"

apache_vhosts:
  - servername: "fb-multimedia.dev"
    serveralias: "www.fb-multimedia.dev"
    documentroot: "/var/www/fb-multimedia/htdocs/D7"
    extra_parameters: "{{ apache_vhost_php_fpm_parameters }}"

drupal_composer_install_dir: "/var/www/drupal8"

installed_extras:
  - adminer
  # - blackfire
  - drupalconsole
  - drush
  # - elasticsearch
  # - java
  - mailhog
  # - memcached
  # - newrelic
  - nodejs
  - pimpmylog
  # - redis
  - ruby
  # - selenium
  - solr
  # - upload-progress
  - varnish
  # - xdebug
  # - xhprof

 
post_provision_scripts:
  - "../fred-post-script.sh"

nodejs_npm_global_packages:
  - name: bower
  - name: gulp
 
# Ruby Configuration (if enabled above).
ruby_install_gems:
  - compass
  - sass
  - less


Ajouter des Hosts

Si l'on souhaite ajouter d'autres sites dans le host, Il suffit de l'ajouter dans apache_vhosts, par exemple :

apache_vhosts:
  - servername: "fb-multimedia.dev"
    serveralias: "www.fb-multimedia.dev"
    documentroot: "/var/www/fb-multimedia/htdocs/D7"
    extra_parameters: "{{ apache_vhost_php_fpm_parameters }}"

Ainsi ajouté dans le config.yml, Drupal VM va ajouter le nouveau host dans la VM et également dans le fichier hosts de windows.

 

Lancer automatiquement des commandes sh a la fin de l'installation de la vm

Ajouter ces lignes, en remplaçant fred-post-script par le nom du fichier script à executer :

post_provision_scripts:
  - "../fred-post-script.sh"

Exemple de commande dans le fichier fred-post-script.sh qui seront lancer a l'issue de l'installation de la VM :

#SASS and compass install
yes | sudo apt install ruby-compass
yes | sudo apt install ruby-sass


Provisioner

Vous pouvez toujours appliquer les modifications de votre config.yml même après votre première installation de drupalVM. il suffit simplement de démarrer la vm (vagrant up) puis entrer la commande vagrant provision :

C:\VMs\drupalVM>vagrant provision

 

Partage de fichiers

Le dossier www (ligne 7) est créé dans le dossier drupalVM lors de l'installation et sera partagé avec la machine virtuelle. Il va contenir vos fichiers de sites drupal. il seront toujours accessible même si la machine virtuelle n'est pas démarrée.

Update 31/03/2017 : Après avoir rencontré des ralentissements dû au partage natif de virtualblox ci-dessus et testé d'autre type de partage (nfs,sshf); j'utilise maintenant samba pour partager le dossier /var/www de la VM vers windows. Les perfs sont là, mais il faut penser à sauvegarder régulièrement fichiers et bdd car ils sont encapsulé dans la VM et seront perdu avec un Vagrant destroy.
Pour plus de détails voir le blog de l'auteur.

 

Partage de clés ssh

Plutot que de recréer des clés ssh(github, gitlab, etc) à chaque nouvelle VM, suivez cet article "partager les clés ssh de votre PC hôte windows avec ses machines virtuelles".

 

Pour en savoir plus sur Drupal vm consulter la très appréciée documentation de drupal VM.

Merci à Jeff Geerling qui développe activement ce projet.

 

Bienvenue sur le blog !

Il s'agissait au départ d'un recueil de notes donc certains billets sont plutôt succincts.
J'espère que vous y trouverez l'info qu'il vous manque dans votre recherche.
Vos commentaires sont les bienvenus.

Bonne lecture !

Mois / Années

Recherche