Installer un site web localement avec Trellis

Maintenance & dépannage
Photo by Max Duzij on Unsplash

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):

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 :

  1. Vérifiez si les clés SSH nommées digitalocean-priv et digitalocean-pub.pub existent dans votre dossier /trellis/passwords .
  2. 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
  3. Configurez les permissions de vos fichiers :
    chmod 600 /home/vagrant/.ssh/digitalocean-priv
    chmod 600 /home/vagrant/.ssh/digitalocean-pub.pub
  4. 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 :

  1. Vérifiez sir les clés SSH nommées github-priv et github-pub.pub existent dans votre dossier trellis/passwords
  2. 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
  3. Configurez les permissions de vos fichiers :
    chmod 600 /home/vagrant/.ssh/github-priv
    chmod 600 /home/vagrant/.ssh/github-pub.pub
  4. 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)
  5. 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
  6. 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 :

Chargement