Si vous hébergez beaucoup de sites ou si vous les déployez souvent, vous allez peut-être chercher à automatiser vos déploiements (à l’aide d’un script maison, d’un outil comme Fabric ou Deployer…). Nous allons voir comment configurer un utilisateur dédié (ou modifier les permissions d’un existant) afin de déployer dans le dossier /var/www .
Création d’un utilisateur dédié au déploiement
Si vous avez suivi l’article Installer WordPress avec LAMP sur un serveur Debian, votre dossier /var/www contenant vos sites appartient à l’utilisateur et au groupe www-data.
Nous allons dans un premier temps créer un utilisateur dédié au déploiement et l’ajouter au groupe www-data :sudo adduser deployer
sudo usermod -a -G www-data deployer
L’option « -g » suivante permet de définir www-data
comme le groupe primaire de l’utilisateur (cela évitera de le faire manuellement par la suite) :
sudo usermod -g www-data deployer
Nous allons maintenant nous authentifier en tant qu’utilisateur deployer avec le mot de passe défini à l’étape précédente afin de mettre en place un dossier « .ssh » dans le répertoire utilisateur :su deployer
cd
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
L’utilisateur deployer est créé mais il n’est pour l’instant associé à aucune clé. Si vous avez suivi la procédure décrite dans l’article Configurer SSH pour s’authentifier par clé privée, vous avez déjà un utilisateur sur votre serveur ayant un accès SSH configuré. Nous allons récupérer la clé publique de notre utilisateur « user1 » et l’ajouter au fichier authorized_keys
de l’utilisateur deployer.
Astuce : vous pouvez utiliser WinSCP sur Windows, ou CyberDuck sur OSX pour bénéficier d’une interface graphique pour réaliser vos transferts de fichier avec votre serveur.
Nous pouvons temporairement mettre la clé publique id_rsa.pub
de « user1 » dans le répertoire /tmp.
En étant authentifié en tant qu’utilisateur « deployer » :cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
Permissions de /var/www
Afin de nous assurer que tout le contenu de /var/www est dans le groupe www-data et que les membres du groupes ont tous les droits sur le répertoire, exécutez la commande suivante :sudo chgrp -R www-data /var/www
sudo chmod -R g+rwx /var/www