Donner un nom clair à chaque serveur
Une convention cohérente pour les alias fait gagner du temps et réduit les erreurs. Dans ~/.ssh/config, regroupez l’adresse, l’utilisateur, le port et la clé de chaque serveur sous un nom unique. Incluez le rôle et l’environnement dans ce nom pour reconnaître la production d’un coup d’œil. Les options non définies pour un hôte donné sont reprises du bloc Host *.
Host prod-web-1
HostName 203.0.113.10
User admin
IdentityFile ~/.ssh/id_ed25519_prod
IdentitiesOnly yes
Host test-web-1
HostName 203.0.113.20
User adminÉviter le mauvais serveur
Lorsqu’on travaille sur plusieurs serveurs, il est facile de saisir une commande dans la mauvaise fenêtre. Affichez le nom d’hôte dans l’invite, utilisez une couleur d’invite différente en production et vérifiez où vous êtes avant toute action destructive. Réservez les étapes les plus dangereuses à un moment où un seul terminal est ouvert.
hostname -f; whoami; pwdMaintenir les tâches longues en cours d’exécution
Une perte de connexion met normalement fin au shell et aux commandes qui s’y exécutent. Lancez les tâches longues dans tmux ou screen sur le serveur pour qu’elles continuent et que vous puissiez vous y reconnecter. Le keepalive du client détecte plus vite une connexion coupée, mais ne maintient pas à lui seul la tâche en cours d’exécution.
tmux new -s upgrade
tmux attach -t upgradeSavoir quels serveurs répondent
Avant de commencer à travailler sur plusieurs serveurs, vérifiez que leurs ports SSH répondent. Un port fermé ne signifie pas toujours qu’un serveur est arrêté : le service peut s’être arrêté ou un pare-feu peut bloquer votre réseau.
for host in prod-web-1 test-web-1; do
ssh -o ConnectTimeout=5 "$host" 'hostname; uptime' || echo "$host: no connection"
donePlusieurs serveurs dans CH-J Server Manager
Les profils des serveurs sont stockés dans un coffre-fort local chiffré, et plusieurs sessions SSH peuvent être ouvertes à la fois. Dans Alpha 0.1.1, deux terminaux sont disposés côte à côte ou l’un au-dessus de l’autre, sur un ou deux serveurs. Masquer un terminal ne ferme pas sa session. Les modules utilisent automatiquement la connexion s’il n’y en a qu’une et demandent laquelle utiliser quand plusieurs sont ouvertes ; un module ne passe donc jamais de lui-même à un autre serveur. Verrouiller le coffre-fort déconnecte les sessions SSH : terminez d’abord les tâches en cours ou maintenez-les dans tmux.
La disponibilité d’un coup d’œil
Dans Alpha 0.1.1, le moniteur de disponibilité vérifie les serveurs enregistrés en arrière-plan par une connexion TCP au port SSH, par défaut toutes les 12 secondes, sans ouvrir de session. L’état hors ligne signifie alors que le port SSH est inaccessible depuis votre réseau ; le serveur lui-même peut toujours fonctionner.