technique:infrastructure:urgence

Accès d'urgence aux machines

Quand il n’est plus possible d’accéder aux machines par SSH ou via l’interface Proxmox, par exemple en cas de redémarrage raté, de kernel panic ou de freeze, il est utile de pouvoir les forcer à redémarrer ou reprendre la main sur une console et régler le problème.

Dans l’interface Proxmox, on peut obtenir un accès VNC en cliquant sur « Console → NoVNC » pour les machines virtuelles.

A Savoir:

VNC (Virtual Network Computing, littéralement « informatique virtuelle en réseau ») est un système de visualisation et de contrôle de l’environnement de bureau d’un ordinateur distant. Il permet au logiciel client VNC de transmettre les informations de saisie du clavier et de la souris à l’ordinateur distant, possédant un logiciel serveur VNC à travers un réseau informatique (source).

Note:

NoVNC est un client VNC pour le web.

Un terminal où on peut se connecter en tant que root (mot de passe dans Vaultwarden) pour administrer la machine, ou avec son compte LDAP si ça fonctionne.

Par contre le clavier est en QWERTY, si le mot de passe contient des caractères spéciaux, c’est impossible à taper. Et on ne peut pas faire de copier/coller… Une astuce sur Linux est de copier le mot de passe dans son presse-papier, lancer dans un terminal :

sh -c 'sleep 3.0; xdotool type "$(xclip -o -selection clipboard)"'

Puis revenir vite dans la fenêtre VNC, et le mot de passe se tape tout seul.

A Savoir:

SPICE (acronyme anglais de « Simple Protocol for Independent Computing Environments », signifiant « Protocole simple pour des environnements informatiques indépendants ») est un protocole de communication, utilisé en général en virtualisation, pour visualiser et gérer à distance un système d’exploitation (source)).

SPICE a des fonctionnalités beaucoup plus avancées que VNC, en particulier le copier-coller. Il permet aussi d’accéder nativement aux périphériques USB de la machine, à son son, etc. L’écosystème SPICE permet notamment de configurer et de sauvegarder la configuration d’accès aux machines virtuelles sur sa machine locale, pour un accès rapide.

Attention:

Pour que le copier-coller fonctionne, il faut que le paquet spice-vdagent soit installé sur la machine virtuelle.

Sur sa machine locale, il faut installer les paquets virt-manager, virt-viewer et spice-gtk.

Dans l’interface Proxmox, il faut choisir SPICE comme « écran » de la machine, dans l’onglet Matériel.

Attention:

Si l’option n’était pas activée, un redémarrage de la machine est nécessaire.

Enfin, vérifier que le port 3128 est ouvert sur l’hyperviseur (voir pare-feu).

Puis on télécharge un fichier à ouvrir avec virt-manager en cliquant sur Console → SPICE.

La carte mère de Bob possède une fonction qui permet d’avoir accès à la machine quel que soit son état (Intel AMT).

Avec l’AMT, on a un accès VNC aux machines en passant par un rebond sur nagios.tetaneutral.net. On ne peut en effet obtenir un accès VNC que via le réseau privé de Tetaneutral.

Attention:

Il vous faudra pour ce faire la clé SSH de Picasoft, enregistrée sur nagios, et disponible sur le vaultwarden.

Une fois la clé privée SSH de Picasoft enregistrée sur votre machine, utilisez les commandes suivantes :

snippet.bash
# Redirection des ports locaux vers les ports distants de Bob
# On suppose que ~/.ssh/id_rsa_picasoft contient la clé privée Picasoft (voir Vaultwarden)
# 192.168.128.151 est paramétrée au niveau de vPro, pas depuis Linux
ssh -p 2222 nagios.tetaneutral.net -l ttnn -N \
-i ~/.ssh/id_rsa_picasoft \
-L 8081:192.168.128.152:16992 -L 5911:192.168.128.152:5900

Explications :

  • -l ttnt : le login autorisé à accéder à nagios via notre clé est ttnt
  • -N : désactive l’exécution d’un shell distant, rien ne s’affiche, c’est normal
  • -L port:host:hostport : port (en local) est forwardé au niveau du port hostport du serveurhost.
  • -p 2222 : le serveur SSH sur nagios écoute sur le port 2222

Avec un navigateur web, l’URL http://localhost:8081 donne accès à l’interface web d’AMT pour l’inventaire et le lancement des commandes de redémarrage des machines. Le mot de passe est aussi dans Vaultwarden, chercher vpro.

Voici un schéma pour mieux comprendre ce qu’il se passe :

On pourra aussi utiliser un client VNC pour l’accès VNC, comme remote-viewer (1).

snippet.bash
remote-viewer vnc://localhost:5911

En général, l’idée est de redémarrer les machines via l’interface web AMT puis d’utiliser le VNC pour voir les erreurs au démarrage et les corriger.

Note:

Depuis un accès physique, l’interface vPro se configure avec la combinaison de touche Ctrl+P avant le boot.

Historiquement, Alice est administrable à distance comme Bob, mais une défaillance de la carte-mère empêche de la redémarrer en utilisant vPro lorsque la machine a freeze. La seule solution est alors de la redémarrer physiquement, mais pour ce faire il faut encore pouvoir y accéder.

Des bénévoles ont développé une solution permettant de redémarrer Alice à distance « comme si » on la redémarrait physiquement.

A Savoir:

C’est un petit système Arduino connecté au pin de redémarrage d’Alice et contrôlable depuis Caribou. Les plans de conception et de branchement sont consultables sur ce dépôt.

Pour redémarrer Alice, il faut se connecter en root sur Caribou et se rendre dans le dossier /root/arduino-remote-boot#.

Si Alice est allumée, on lance d’abord cette commande pour l’éteindre :

snippet.bash
./remote-boot.sh -l

Puis, quand elle éteinte, on lance cette commande pour l’allumer :

snippet.bash
./remote-reboot.sh

On peut ensuite suivre le processus de redémarrage en accès VNC.

Important:

Il faut rétablir l’accès VNC qui devrait tout de même fonctionner en conditions normales, cf cette issue.

L’équivalent de Intel AMT existe sur les serveurs Dell, il s’agit du système propriétaire iDRAC.

Attention:

Ce système n’est pas disponible sur une IP publique, il faut donc utiliser un rebond sur le serveur coulemelle de Rhizome. Il faudra pour cela récupérer la clé sur le vaultwarden.

snippet.bash
# Coulemelle est la machine de Rhizome dans le même datacenter que Alice
# On suppose que ~/.ssh/id_rsa_picasoft contient la clé privée Picasoft (voir Vaultwarden)
# Redirection du port local vers le port distant de Caribou
ssh coulemelle.rhizome-fai.net \
-i ~/.ssh/id_rsa_picasoft \
-l picasoft -N -L 8080:192.168.0.4:443

On peut ensuite accéder à https://localhost:8080 et se connecter à l’aide des identifiants sur Vaultwarden. Il sera notamment possible de redémarrer le système, de gérer les disques du contrôleur RAID et de vérifier la santé du système.

  • technique/infrastructure/urgence.txt
  • de qduchemi