Installer un site web localement avec Trellis
De manière à respecter la même configuration « serveur » pour tous les environnements du site, comme expliqué dans la documentation Gérer les environnements d’un site web, il sera nécessaire d’utiliser une machine virtuelle si vous souhaitez installer un site web localement avec Trellis.
Remarque :
Cette documentation vise à introduire l’installation locale d’un site avec Trellis, pour ceux qui sont habitués à lancer des lignes de commandes. Il est admis qu’aucun support ne pourra être fourni si vous ne parvenez pas à finaliser cette installation locale.
Utiliser Vagrant – la configuration recommandée
Prerequis
- le code de votre site (avec 2 dossiers /site et /trellis)
- votre dossier /passwords
- les accès au compte GitHub
- les accès au compte DigitalOcean
Installation
Décompresser vos fichiers de code de votre site, qui sont compressé en .zip
Puis suivez les instructions pour installer les outils nécessaires (notamment Vagrant et VirtualBox):
- Pour Windows : https://roots.io/docs/getting-started/windows/
- Pour Mac : https://roots.io/docs/getting-started/macos/
- Pour Linux Ubuntu : https://roots.io/docs/getting-started/ubuntu-linux/
Configuration des mots de passe
Copier/Coller votre dossier /passwords dans votre dossier /trellis
Copier votre clé de cryptage dans votre dossier /trellis
cp /home/vagrant/trellis/passwords/.vault_pass /home/vagrant/trellis/.vault_pass
Remarques pour vos modifications de mots de passe :
Les fichiers de mots de passe sont cryptés pour des raisons de sécurité, et doivent être décryptés pour être modifiés (mais seulement une fois que vous serez connecté à votre machine virtuelle : vagrant up && vagrant ssh
)cd /home/vagrant/trellis
ansible-vault decrypt group_vars/development/vault.yml
Changez la dernière ligne en fonction des fichiers de mots de passe modifiés :ansible-vault encrypt group_vars/staging/vault.yml
ansible-vault encrypt group_vars/production/vault.yml
ansible-vault encrypt group_vars/all/vault.yml
Maintenant, vous êtes capables de voir et éditer le contenu des fichiers. Mais n’oubliez pas de les re-crypter avant votre prochain commit/push sur Git :ansible-vault encrypt group_vars/development/vault.yml
Lancement de la machine virtuelle
Depuis le dossier de votre projet:
cd trellis && vagrant up && vagrant ssh
Vous devriez voir simplement un message en vert.
Clés SSH
Les clés SSH pour digitalocean
Vous devez ajouter votre clé SSH privée de DigitalOcean dans votre machine virtuelle locale :
- Vérifiez si les clés SSH nommées digitalocean-priv et digitalocean-pub.pub existent dans votre dossier /trellis/passwords .
- Copiez vos clés SSH de DigitalOcean :
cp /home/vagrant/trellis/passwords/digitalocean-priv.ppk /home/vagrant/.ssh/digitalocean-priv
cp /home/vagrant/trellis/passwords/digitalocean-pub.pub /home/vagrant/.ssh/digitalocean-pub.pub
- Configurez les permissions de vos fichiers :
chmod 600 /home/vagrant/.ssh/digitalocean-priv
chmod 600 /home/vagrant/.ssh/digitalocean-pub.pub
- Vous devriez avoir votre clé publique déjà ajoutée sur vos serveurs. Sinon, il vous faudra l’ajouter en suivant ces étapes :
- Sur la machine virtuelle locale ( après avoir lancé les commandes ‘vagrant up’ puis ‘vagrant ssh’), affichez le contenu de votre clé publique :
cat ~/.ssh/digitalocean-pub.pub
- Copier ce contenu, qui ressemble à ssh-rsa EXAMPLEzaC1yc2EAAAADAQAB…
- Connectez-vous à votre serveur via SSH (toujours depuis votre Machine Virtuelle)
cd /home/vagrant/trellis
eval `ssh-agent -s`
ssh-add -k /home/vagrant/.ssh/digitalocean-priv
ssh admin_username@1.1.1.1
NB: Vous pouvez trouver votre admin_username dans le fichier /trellis/group_vars/all/users.yml
NB2: Vous pouvez trouver votre adresse IP dans le fichier /trellis/hosts/staging (ou /production) - Créez et ouvrez le fichier ~/.ssh/authorized_keys :
nano ~/.ssh/authorized_keys
- Copiez le contenu de votre clé SSH dans ce fichier en cliquant droit dans votre terminal et en choisissant Copier
Pour en savoir plus : https://www.digitalocean.com/docs/droplets/how-to/add-ssh-keys/to-existing-droplet/
Les clés SSH pour Github
Vous devez ajouter votre clé SSH privée de Github dans votre machine virtuelle locale :
- Vérifiez sir les clés SSH nommées github-priv et github-pub.pub existent dans votre dossier trellis/passwords
- Copier vos clés SSH Github
cp /home/vagrant/trellis/passwords/github-priv /home/vagrant/.ssh/github-priv
cp /home/vagrant/trellis/passwords/github-pub.pub /home/vagrant/.ssh/github-pub.pub
- Configurez les permissions de vos fichiers :
chmod 600 /home/vagrant/.ssh/github-priv
chmod 600 /home/vagrant/.ssh/github-pub.pub
- Comme pour les clés de DigitalOcean, vous devriez avoir votre clé publique déjà ajoutée sur vos serveurs (sinon reportez vous au point 4 plus haut)
- Vérifier si vous voyez votre clé SSH publique ici (en remplaçant votre nom d’utilisateur) : https://github.com/your_github_username.keys
Sinon, ajoutez la depuis votre menu utilisateur sur Github Settings > SSH and GPG keys > New SSH key
Pour en savoir plus : https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account - Vous devez aussi changer d’autres fichiers dans Trellis :
- dans /trellis/group_vars/all/known_hosts.yml : ajoutez votre clé publique Github
- dans /trellis/group_vars/all/users.yml: changez https://github.com/your_github_username.keys
- dans /trellis/group_vars/staging/wordpress_sites.yml: changez le lien du repo de votre projet : git@github.com:your_github_username/your_github_repository_name.git
- dans /trellis/group_vars/production/wordpress_sites.yml: changez aussi le lien du repo de votre projet : git@github.com:your_github_username/your_github_repository_name.git
Et ça devrait être bon !
Si vous avez besoin de plus d’informations, par exemple sur le déploiement sur vos serveurs, n’hésitez pas à consulter la documentation de Trellis: https://roots.io/docs/trellis/master/installation/#create-a-project
Utiliser DevKinsta et Docker – la configuration la plus simple
DevKinsta pourrait être une solution plus simple, mais également moins complète – surtout si vous n’utilisez pas les serveurs de Kinsta.
L’installation devrait se dérouler en 3 étapes :
- L’installation de DevKinsta : https://kinsta.com/fr/base-de-connaissances/devkinsta/
- La configuration Nginx de DevKinsta : https://community.devkinsta.com/t/nginx-configuration-for-bedrock/201
- Eventuellement, la configuration de Bedrock et Trellis pour Kinsta : https://kinsta.com/fr/blog/bedrock-et-trellis/