Today I learned
Aujourd’hui j’ai lancé ce site. Pour ça, j’ai appris les choses suivantes :
- Comment déployer automatiquement à partir de Git
- Comment configurer un VHost Apache pour se lancer avec un username différent de www-data
Déployer automatiquement à partir de Git
Utiliser un générateur de site statique à partir de fichiers markdown, c’est bien. Mais si le déploiement du site pouvait se faire automatiquement dès qu’une modification est apportée au site, ça serait mieux. Ce qui serait encore mieux, c’est que ce processus puisse se faire de n’importe où.
Modification du site -> Enregistrement de la modification -> Déploiement
La première partie est facile, avec la mise en place d’un dépôt Git sur mon serveur dédié. Les données du site sont centralisées, et je peux les récupérer et les modifier à partir de n’importe où, à la condition d’avoir un accès internet et un client git sur l’appareil utilisé. Ce qui, à l’heure actuelle, correspond à mes principaux moyens de communication : téléphone Android, iPad et ordinateurs sous Ubuntu ou Windows.
La deuxième partie est, de fait, aussi facile. En configurant un hook git qui se déclenchera après la réception de modifications dans un dépôt, je peux lancer les commandes de génération du site par Jekyll, et la copie des fichiers vers le répertoire scruté par mon serveur apache.
J’ai fait le choix (discutable) d’avoir deux dépôts :
- Un pour le code (utilisateur git)
- Un pour le déploiement (utilisateur deployer)
Cette configuration me permet d’effectuer des modifications sur le “code” sans redéployer à chaque fois. Je peux par exemple commencer à écrire sur un appareil, pusher le texte dans mon dépôt “code”, le récuperer sur un autre appareil et continuer ma rédaction. Une fois que ma rédaction est terminée, je peux déployer le résultat final à partir de la machine sur laquelle je suis à ce moment-là, sans me poser de questions.
Pour la partie déploiement, j’ai suivi la page suivante, en créant un utilisateur deployer, un dépôt git, et un hook post-receive. La seule différence étant qu’il n’y avait pas de post-receive.sample, et que j’ai donc créé le fichier de zéro.
Configurer un VHost Apache pour se lancer avec un username différent de www-data
Arrivé là, j’ai eu un problème. Le répertoire contenant mon site statique doit être accessible par mon utilisateur deployer, qui va copier les fichiers compilés par Jekyll, mais aussi et surtout par l’utilisateur de mon serveur apache, c’est-à-dire www-data. J’avais plusieurs possibilités :
- Faire un chmod 777, et vogue la galère. Efficace, mais très sale.
- Faire un chmod 775, et mettre mon utilisateur
deployerdans le groupe www-data, ou changer le groupe de mon répertoire endeployer. Meh. - Mettre le dossier en 755, avec comme propriétaire
deployer, et faire tourner le serveur apache avec cet utilisateur pour ce VHost. C’est la solution que j’ai choisie, parce qu’elle me permettait de découvrir de nouvelles choses.
J’ai donc installé le module apache2-mpm-itk (qui s’appelle libapache2-mpm-itk sur Ubuntu…), et configuré mon VHost avec les lignes suivantes :
<IfModule mpm_itk_module>
AssignUserId deployer deployer
</IfModule>
Un rechargement de la configuration apache, et tout fonctionne. C’est presque trop facile…
.
Publications
- Migration de serveur
- Semaine 25
- Semaine 24
- Semaine 23
- Semaine 22
- Semaine 20
- Semaine 20
- Semaine 19
- Semaine 18
- Today I learned
subscribe via RSS