Blog // Exirel.me

Je mets à jour mon wordpress avec python-fabric.

Par Florian Strzelecki - 14:32 - 15.03.2011

Tags : Python, Documentation, Wordpress, Fabric, Technique

Comme tout bon informaticien qui se respecte, j'ai tendance à chercher le moyen le plus simple, le plus rapide, et le moins pénible pour moi, de faire les choses. Surtout lorsque ces choses sont des tâches répétitives, et/ou, facile à automatiser.

Parlons peu mais parlons bien, voici quel était mon problème :

Partant de ça, je suis allé piocher dans mes connaissances quels outils pourraient m'être utile. Et c'est ainsi que j'ai choisi Fabric : j'ai créé un petit script, je le partage aujourd'hui avec qui le souhaite, sans restriction d'usage.

Petit tour technique...

Python Fabric, qu'est-ce donc ?

Fabric est un utilitaire écrit en Python, que vous pouvez trouver à l'url http://fabfile.org/, qui permet de créer des scripts simple pour déployer des applications sur un ou plusieurs serveurs. Il est très complet, et j'ai déjà eu l'occasion de l'utiliser avec grand plaisir.

C'est simple et diaboliquement efficace (aka "c'est trop un truc de feignant" disait un ancien collègue).

Le principe est le suivant : un seul fichier "fabfile.py" contient les commandes que vous souhaitez pouvoir effectuer pour votre déploiement, que ce soit en local ou à distance via ssh.

Fabric gère toute la partie "host", c'est à dire qu'il s'assure que les commandes sont bien lancées sur tous les serveurs que vous avez indiqué. Bien entendu, vous pouvez gérer complètement vers quels serveurs et comment sont effectuées les différentes commandes. Les possibilités de configuration et de manipulation sont très grande !

Je vous invite, si vous êtes intéressé par le sujet, à vous renseigner sur le site de Fabric.

Et pour wordpress ?

Maintenant que vous savez ce qu'est Fabric (bon ok, dans les grandes lignes, mais allez lire la doc, vous comprendrez mieux), vous imaginez ce que j'ai pu faire pour mon wordpress : un simple script fabfile.py, contenant trois commandes, me permettant de mettre à jour mon wordpress très rapidement et sans me prendre la tête dessus - et sans erreurs.

Et comme je suis quelqu'un qui aime partager, vous pouvez obtenir ce script - et une petite documentation - sur le bitbucket du projet : https://bitbucket.org/exirel/wpfab/.

Voici le fonctionnement de la commande principale du script : update.

  1. Créer une archive du code source actuel du blog (sans le répertoire "uploads" contenant les fichiers téléchargés)
  2. Obtenir la dernière version de wordpress à l'url http://wordpress.org/latest.tar.gz
  3. Extraire l'archive et supprimer le .tar.gz inutile.
  4. Supprimer les fichiers et répertoires inutiles du répertoire wordpress précédemment obtenu
  5. Copier les répertoires uploads et wp-content dans le nouveau répertoire, ainsi que le fichier wp-config.php.
  6. Supprimer le répertoire actuel de votre blog
  7. Remplacer ce répertoire par le nouveau, contenant la copie de toutes vos données

Et voilà ! Ce n'est pas plus compliqué que ça.

Je sais que mon script peut être - et doit probablement l'être - amélioré et modifié. D'ailleurs, je n'ai pas indiqué de licence, mais ce sera sans doute quelque chose laissant à n'importe qui d'en faire n'importe quoi. N'importe quel autre développeur aurait pu faire ça, j'en suis sûr.

Après ça

Maintenant que j'ai mon script, et que je peux mettre mon blog à jour, il ne me reste plus qu'à :

  1. Mettre du nouveau contenu sur mon blog
  2. Améliorer mon script, notamment sur la gestion des plugins, et l'archivage des fichiers statiques
  3. Trouver de nouvelles applications encore mieux à Fabric
  4. Boire une tasse de ice-tea. Parce que c'est bon, le ice-tea.

Vous pouvez retrouver la documentation du projet dans le wiki sur bitbucket à l'adresse https://bitbucket.org/exirel/wpfab/wiki/Home