Comment tmux vous aide à gérer votre serveur Cloudways via SSH

Publié: 2020-03-06
tmux
Suivez @Cloudways

Cet article complète et étend une vidéo que j'ai créée sur l'utilisation de SSH et de tmux pour gérer mes serveurs Cloudways. Dans la vidéo, vous pouvez me regarder utiliser tmux pour gérer les connexions SSH à plusieurs serveurs Cloudways et utiliser l'outil de ligne de commande htop pour analyser la charge du serveur.

Vous pouvez regarder la vidéo complète ici :

Comme il y a beaucoup plus dans cette conversation que ce que j'ai couvert dans la vidéo, je voulais écrire cet article complémentaire et donner plus d'informations sur les raisons pour lesquelles j'utilise tmux et pourquoi je m'appuie sur SSH pour l'administration du serveur.

Pour vous donner un peu de contexte, je ne suis pas un administrateur de serveur de formation - pas même un développeur Web qualifié. Tout ce que je fais est autodidacte. Pour moi, l'apprentissage par la pratique est mon approche préférée pour acquérir des compétences ou relever les défis auxquels je suis confronté. Je ne suis plus un ami de l'éducation formelle (j'ai quitté une maîtrise en sécurité informatique) et je crois plutôt qu'il faut s'impliquer dans la technologie pour comprendre son fonctionnement.

Veuillez garder cette approche à l'esprit lorsque vous regardez la vidéo et lisez cet article. Comme vous le verrez, j'ai divisé l'article en deux sections. Chacun pourrait être un très long article ou probablement plusieurs articles à part, mais j'ai pensé qu'ils allaient bien ensemble dans ce contexte.

  • Gérer votre serveur via SSH
  • Pourquoi devriez-vous utiliser la ligne de commande ?
  • Cas d'utilisation : débogage de la charge du serveur à l'aide de htop
  • Cas d'utilisation : utilisation de WP-CLI sur des serveurs Cloudways
  • Pourquoi ai-je recommandé tmux ?

Gérer votre serveur via SSH

L'un des avantages d'utiliser Cloudways pour l'hébergement est que vous avez un accès en ligne de commande à vos serveurs et à vos applications. Bien qu'il ne s'agisse pas d'un accès root, vous pouvez faire beaucoup de choses sur la ligne de commande.

De mon point de vue, il est raisonnable que je n'obtienne pas d'accès root à mes serveurs Cloudways. Imaginez à quoi ressemble la maintenance de 20 000 serveurs si chaque administrateur de serveur installe ses propres outils et packages. C'est un exploit impossible à réaliser. Cela étant dit, Cloudways nous donne accès à WP-CLI et à de nombreux autres outils standard. Et c'est beaucoup de travail pour maintenir vos serveurs et rester informé de ce que font les serveurs.

Il m'a fallu un certain temps pour comprendre les avantages de gérer mes serveurs via SSH, mais maintenant je ne vois pas d'autre moyen de gérer ce problème. Mes principales raisons d'aller sur la ligne de commande sont :

  • Je n'ai pas besoin d'attendre qu'une application Web se charge pour voir ce que je veux voir.
  • La connexion est gérée via des clés SSH, je n'ai donc pas à entrer mon mot de passe inutilement.
  • Je peux maintenir les sessions SSH en cours d'exécution et je n'ai pas à me soucier de me connecter et de me déconnecter.
  • J'ai accès à WP-CLI et je peux faire des choses que je ne peux pas faire dans le tableau de bord WP Admin standard.
  • Je peux automatiser l'exécution des tâches à l'aide de tâches et de scripts cron.
  • Je n'ai pas besoin d'éloigner mes mains du clavier pour utiliser la souris et je peux les garder détendus.

Veuillez noter qu'en tant que conditions préalables, vous devez avoir installé une forme de client SSH. Si vous êtes sous Linux ou Mac, vous pouvez simplement utiliser les applications Terminal pré-installées. Si vous êtes un utilisateur Windows comme moi, vous pouvez soit installer PuTTY, soit utiliser le Bash fourni avec le sous-système Windows pour Linux (ce que je préfère).

Si vous n'avez pas envie d'installer de logiciel supplémentaire, vous pouvez également ouvrir un terminal SSH à partir de la console Cloudways, mais ce n'est pas une solution que je recommanderais pour une utilisation quotidienne. Comme vous le verrez, la beauté de l'utilisation d'une interface de ligne de commande est de ne pas avoir à se connecter à une application Web comme la console Cloudways.

Pourquoi devriez-vous utiliser la ligne de commande ?

L'utilisation de la ligne de commande était très intimidante au début. C'est aussi vrai pour l'administration du serveur que pour l'utilisation de la ligne de commande sur mon PC ou Mac local. La plupart de mes connaissances sur la ligne de commande proviennent de tutoriels que j'ai lus sur Internet ou d'un de mes amis qui travaille chez Cisco. C'est tout apprendre en faisant.

Surtout lors de la configuration d'un serveur ou d'un service comme un serveur Web ou un cache côté serveur, il est facile de casser les choses. Ne pas savoir ce que je faisais et ne pas avoir d'expérience avec l'utilisation d'outils en ligne de commande ne m'a pas nécessairement inspiré confiance pour essayer de gérer mes serveurs via SSH.

J'ai finalement eu la gueule de bois et j'ai découvert les avantages de l'utilisation de la ligne de commande en suivant trois règles :

  1. Faites toujours une étape à la fois et essayez de comprendre exactement ce que vous faites à cette étape.
  2. Ayez toujours un point de restauration ou une sauvegarde au cas où vous cassiez des choses.
  3. Testez toujours dans un environnement sûr et n'exécutez jamais un outil de ligne de commande sur un site Web en direct pour la première fois.

Avec ces règles, je savais que rien ne pouvait vraiment mal tourner. J'ai créé une version intermédiaire de mon site Web en direct sur Cloudways à l'aide de la fonctionnalité " Clone " et je viens de suivre leur tutoriel de connexion via SSH. Une fois connecté, j'ai commencé à jouer avec WP-CLI et d'autres outils de gestion de serveur simples comme htop.

Si vous suivez une approche similaire, vous devriez être en bonne position pour apprendre en toute sécurité à utiliser la ligne de commande. Cela aide d'avoir une formation en développement ou en informatique mais je ne pense pas que ce soit nécessaire. Pensez simplement à la ligne de commande comme un moyen d'interagir avec votre ordinateur, tout comme vous le faites avec votre souris sur le bureau. Surtout avec WP-CLI , il est facile de faire les premiers pas sur la ligne de commande et de voir les résultats sur votre tableau de bord WP Admin.

Cas d'utilisation : débogage de la charge du serveur à l'aide de htop

Dans la vidéo, vous verrez que j'utilise l'outil htop pour analyser l'utilisation des ressources du serveur. htop est un outil standard qui vous donne un aperçu de ce qui se passe actuellement sur votre serveur en temps réel. Étant donné que les données de surveillance de la plate-forme Cloudways présentent parfois de légers retards, il est extrêmement utile d'en savoir plus sur l'utilisation de htop .

Chaque fois que le bot Cloudways me notifie que l'utilisation du processeur ou de la RAM augmente, je me connecte au serveur respectif via SSH et lance htop. En quelques secondes, je peux identifier le processus et l'application qui consomment les ressources. Ce qui me prendrait une minute ou deux avec la plate-forme Web Cloudways se fait en 10 à 20 secondes.

Voici à quoi ressemble htop en pratique :

htop

Le processus de débogage consiste ensuite à identifier l'application qui utilise des quantités inhabituelles de ressources serveur via htop et à examiner cette application plus en détail. Si vous voyez un processus PHP de cette application occuper le CPU ou la RAM, vous savez qu'il s'agit probablement d'un élément lié à un plugin WP ou à votre thème. Il arrive souvent que les processus planifiés via WP-Cron se soient empilés et soient désormais exécutés en même temps, surchargeant ainsi votre serveur.

Si vous voyez un processus MySQL ou MariaDB occuper les ressources du serveur, vous savez que vous n'avez pas à regarder dans les plugins ou le thème mais dans la base de données. J'ai vu des bases de données perdre leurs index et ainsi ralentir l'exécution des requêtes SQL. Cela peut prendre des années pour que vous puissiez identifier les sources du problème si vous ne savez pas si PHP ou MySQL est à l'origine des problèmes.

Comme vous pouvez l'imaginer, ce n'est que la pointe de l'iceberg de ce que htop peut faire. Voici une liste d' exemples pratiques de htop qui font passer mon exemple au niveau supérieur.

Cas d'utilisation : utilisation de WP-CLI sur des serveurs Cloudways

Savoir utiliser WP-CLI peut changer la donne pour votre approche de développement quotidienne. Installer un WP vanilla sans bouger la souris ? Aucun problème. Supprimer tous les transitoires avec l'installation d'un plugin supplémentaire ? Facile. Vous analysez quels crochets ralentissent le plus le temps de chargement de votre site Web ? Vous pouvez également le faire avec WP-CLI.

C'est vraiment incroyable que Cloudways nous donne accès à WP-CLI via la ligne de commande. Vous pouvez facilement créer des outils qui installent votre pile et votre thème de plugin WordPress par défaut. Ou vous pouvez utiliser WP-CLI pour télécharger une sauvegarde de la base de données de votre site en quelques secondes ou minutes (enfin, cela dépend de la taille de votre base de données).

Voici le hic : vous devez utiliser la ligne de commande pour accéder à WP-CLI. Et donc, vous devez vous connecter à votre serveur via SSH afin d'exécuter les commandes WP-CLI sur vos sites Web hébergés par Cloudways.

S'il n'y a aucune autre raison pour vous de vous familiariser avec la ligne de commande et de commencer à utiliser SSH pour gérer vos serveurs, WP-CLI devrait l'être. Permettez-moi de vous donner seulement trois exemples qui vaudront la peine d'être essayés :

1. Optimiser et réparer votre base de données

Comme nous n'obtenons pas PhpMyAdmin sur Cloudways, avoir la possibilité d'optimiser et de réparer votre base de données WordPress à l'aide de WP-CLI est pratique. En utilisant wp db optimiser et wp db repair , vous pouvez mettre votre base de données à jour et stabiliser ses processus.

2. Créer un thème enfant en quelques secondes

Oui, vous pouvez créer un thème enfant en créant et en téléchargeant manuellement un nouveau répertoire avec les styles.css et functions.php respectifs dans wp-content/themes - mais pourquoi s'embêter si vous pouvez exécuter une simple commande qui gère tout pour vous ?

Plus besoin de regarder le Codex pour vérifier si les spécifications ont changé, plus de connexions SFTP et de transferts de fichiers. Exécutez simplement la commande suivante dans la ligne de commande et votre thème enfant est prêt à être utilisé :

wp scaffold child-theme SLUG –parent_theme=SLUG –theme_name=TITLE –author=FULL-NAME –author_uri=URI –theme_uri=URI –activate –force

Notez que cette commande activera le thème enfant par défaut. Si vous ne voulez pas faire cela, omettez « –activate –force » à la fin de la commande.

3. Créer du contenu factice à des fins de développement

Tous les développeurs ont besoin de données avec lesquelles travailler pendant leurs phases de développement. Et si vous n'aviez pas à créer et dupliquer manuellement des publications et des pages dans le tableau de bord WP Admin ? Et si WP-CLI pouvait créer n'importe quelle quantité de données factices pour vous avec une simple commande ?

En exécutant wp post generate –count=10, vous pouvez générer dix publications de démonstration en quelques secondes. La même fonctionnalité fonctionne pour créer des pages, des données factices WooCommerce et vous permet même d'ajouter du contenu lorem ipsum aux publications.

En utilisant simplement curl http://loripsum.net/api/4 | wp post generate –post_content –count=10 créera 10 publications contenant chacune quatre paragraphes de texte Lorem Ipsum.

Pourquoi ai-je recommandé tmux ?

J'espère que les exemples que j'ai donnés ci-dessus sont suffisants pour vous enthousiasmer à l'idée d'essayer SSH pour maintenir vos serveurs Cloudways. Laissez-moi aller un peu plus loin dans cet article et expliquer pourquoi j'utilise tmux pour gérer mes sessions SSH.

En bref, tmux vous permet de gérer plusieurs sessions de terminal à la fois. Cela signifie que lorsque vous faites quelque chose dans le terminal pendant que vous êtes dans une session tmux, tmux gardera une trace de ce que vous faites. Même si vous fermez accidentellement le terminal, votre session ne sera pas perdue. Vous pouvez simplement revenir là où vous vous étiez arrêté avec une seule commande et continuer à travailler.

tmux vous permet également de scripter des sessions. Par exemple, si vous avez tendance à exécuter les mêmes commandes pour configurer des environnements de développement encore et encore, vous pouvez automatiser ces commandes à l'aide de tmux.

Pour être franc, je ne suis pas sûr d'apprendre un jour tout ce que tmux a à offrir – simplement parce que c'est tellement. C'est similaire à Google Spreadsheets ou MS Excel - nous savons tous à quel point ces outils sont puissants, mais ils utilisent peut-être 5% de leurs fonctions au quotidien. Cependant, j'en sais assez pour utiliser tmux dans mon développement WordPress quotidien .

Comme vous pouvez le voir dans la vidéo, j'utilise tmux pour suivre mes sessions SSH. Cela m'évite de me connecter encore et encore à mes serveurs Cloudways. Je viens de me reconnecter à la session tmux appelée "Cloudways" et continuer à travailler sur mes serveurs. Aucune magie impliquée, mais même ce petit ajustement me fait gagner du temps chaque jour. Je fais la même chose pour mes Raspberry Pi privés à la maison (je suis un nerd de la maison intelligente pendant mon temps libre).

tmux est cool car il vous permet de gagner du temps, de devenir plus productif et de réduire les mouvements de vos mains tout au long de la journée. Si vous êtes comme moi, vous ressentez facilement des douleurs au poignet après de longues journées au PC. Même avec une souris ergonomique, ça ne partirait pas pour moi. Ce qui a fonctionné cependant, c'est de réduire les mouvements que je faisais avec mes mains.

Passer la main droite du clavier à la souris de temps en temps ressemblait toujours à une interruption du flux. J'ai dû réfléchir à l'endroit où mettre ma main droite, il y avait une légère tension sur le poignet et je suis sorti du flot de l'écriture. Avec tmux, vous pouvez atteindre une productivité presque sans souris une fois que vous avez compris.

J'aimerais plonger plus profondément dans tmux, mais cela sort du cadre de cet article. Au lieu de cela, je vais vous donner quelques articles qui vous aideront à démarrer avec tmux ou à améliorer vos compétences : Premiers pas avec tmux par Linuxize, Avantages de l'utilisation de tmux par Keegan Lowenstein et Un guide minimaliste d'utilisation de tmux par Peter Jang.