|
UTM - Machine virtuelle « headless » et pilotage à distance
Cette page fait partie d'un ensemble présentant la virtualisation,
et constituant un guide complet de prise en main d'UTM.
Vous pouvez retrouver la page principale ici :
UTM : la virtualisation sur macOS
[Le mode « headless »] -
[Daemonization d'UTM] -
[Gestion à distance]
UTM est avant tout une une application de bureau, conforme à
« l'esprit Apple » de simplicité et d'intuitivité.
Cependant le logiciel propose plusieurs options vous permettant de la transformer
en un « service » fonctionnant entièrement en tâche de fond, vous permettant
d'administrer UTM ainsi que vos machines virtuelles uniquement à l'aide
d'un simple terminal, via le shell.
Ces quelques petits tricks et astuces de configuration, plus difficiles à
trouver, raviront pour sûr les plus grands amateurs d'UNIX !
Reconfigurer une machine virtuelle en mode « headless »
Le mode dit « headless » - repris de la terminologie utilisée dans la
documentation d'UTM - ou
« sans tête » en bon françois, consiste à paramétrer une VM de manière
à ce qu'elle ne dispose d'aucun périphérique virtuel d'affichage. UTM n'ouvrira
alors aucune fenêtre associée à la VM lorsque celle-ci sera démarrée.
Le plus simple pour paramétrer une VM ainsi est de supprimer tous les éléments
de type Display de sa configuration, les systèmes UNIX étant parfaitement capables
de démarrer et de fonctionner sans affichage, à l'image d'un serveur en centre
de données auquel n'est connecté aucun écran.
Cependant il peut être très utile de conserver un moyen d'accéder à une VM sans avoir
à passer par la connexion réseau de celle-ci, en cas de souci au démarrage de l'OS
invité par exemple. Pour cela, nous allons reprendre le pérphérique Serial
utilisé pour l'installation de la VM
dans la première partie, en changeant son mode
en Pseudo-TTY Device comme ceci :
Que fait ce paramétrage ?
Au démarrage de la VM, plutôt que d'ouvrir une fenêtre embarquant un émulateur de
terminal, UTM va cette fois associer la console de la VM à une ligne de pseudo-terminal
UNIX (PTTY) de la machine hôte (votre Mac) - sous /dev/ttys* - auquel
il va vous être possible d'accéder via un programme tiers.
Cette allocation est dynamique. Il vous faut d'abord démarrer votre machine
virtuelle afin que la fenêtre principale d'UTM puisse indiquer le numéro
de PTTY associé :
A partir de là, vous pouvez par exemple accéder à ce pseudo-terminal à l'aide
de GNU Screen, présent par défaut sur macOS. Cela se fait avec la commande :
% screen /dev/ttys013
De là, vous pouvez faire absolument tout ce qu'il est possible depuis la console
d'une machine UNIX, par exemple démarrer en single user, reconfiugrer le
réseau sans vous couper l'herbe sous le pied, et même examiner le démarrage
du système après un reboot !
A noter qu'immédiatement après avoir lancé screen , il se pourrait que
vous deviez appuyer une fois supplémentaire sur [Enter] afin que s'affiche
l'invite de login de la VM.
Il n'y a non plus pas de moyen de « quitter » directement cette connexion
à la console virtuelle, aussi il vous faudra utiliser la combinaison de touches
[Ctrl]+[A] suivi de [k] pour forcer la fermeture de
la session. A côté de cela, vous pouvez utiliser toutes les combinaisons de touches
connues de Screen, et notamment détacher la session pour la récupérer plus tard.
Notez que si vous arrêtez votre VM, la ligne de pseudo-terminal correspondante
sera libérée par UTM et Screen (ou autre) ne sera plus en mesure d'y accéder.
Si vous souhaitez modifier des options au démarrage de la VM alors que vous êtes
en lien avec sa console, procédez donc bien à un reboot
(ou shutdown -r now ) plutôt qu'à un shutdown -h now
ou halt !
La console d'une machine accessible à distance et récupérable à n'importe quel moment,
n'est-ce pas formidable ?
Daemonization d'UTM
Rassurez-vous, ceci n'est pas un terme barbare !
Cela fait allusion aux services fonctionnant en arrière-plan sous UNIX, que l'on
appelle traditionnellement daemons (orthographié ainsi, ce n'est pas une
erreur). Cette dénomination a notamment inspiré le design de la mascotte de FreeBSD,
entre autres choses.
Dans cette partie, vous allez pouvoir désactiver l'icône d'UTM dans
le dock, ainsi qu'ajouter un élément dans votre barre de menu lui étant associé,
et vous permettant d'effectuer rapidement certaines actions sur les VM.
Sélectionnez la fenêtre principale d'UTM, puis dans votre barre de menu, choisissez
UTM > Settings. Cela vous ouvrira les paramètres généraux de l'application :
Cochez alors les options mentionnées sur cette capture, notamment
Show menu bar icon mais aussi les quelques options empêchant à votre Mac
de passer en veille lorsque des VM fonctionnent. Laisser UTM fonctionner même
si aucune VM n'est démarrée vous permettra justement de démarrer celles-ci
à distance (voir plus bas).
Le logo d'UTM devrait maintenant apparaître en haut de votre écran, et cliquer
dessus ouvrira un petit widget comme ceci :
Vous pouvez dès à présent démarrer et arrêter les VM depuis ce menu, mais surtout
cocher l'option Hide dock icon on next launch. Au prochain démarrage d'UTM,
aucune fenêtre ne s'ouvrira plus, et aucun icône supplémentaire ne sera visible
dans votre dock - daemonized!
Si vous retournez dans les paramètres via UTM > Settings vous constaterez
que la case à cocher Show dock icon est décochée, tandis que
Show menu bar icon est forcé (grisé). C'est parfaitement
normal ! Si vous souhaitez revenir en arrière, il vous suffira de décocher
Hide dock icon on next launch via le widget.
A noter que vous pouvez désormais fermer la fenêtre principale d'UTM en cliquant
sur 🔴 sans risques. Tout continuera de fonctionner ! Si vous souhaitez
afficher de nouveau cette fenêtre, choisissez simplement
Show UTM à l'aide du widget.
Gestion à distance avec utmctl et petits trucs & astuces !
Sur les première et deuxième
parties, nous avons fait usage de la commande utmctl pour démarrer les VM.
Cette commande dispose de nombreuses options, et vous permet d'administrer UTM
directement depuis la ligne de commande. Vous pouvez l'appeler sans paramètres
afin d'afficher une aide succinte. Par exemple, utmctl list vous
permet d'afficher toutes les machines virtuelles créés sous UTM ainsi que leur statut.
Si vous comptez l'utiliser régulièrement, je vous conseille de faire un lien
symbolique vers cette commande que vous placerez dans un répertoire accessible
via votre variable d'environnement PATH :
% cd /usr/local/bin
% sudo ln -s /Applications/UTM.app/Contents/MacOS/utmctl
Il vous est bien sûr possible de choisir un autre répertoire.
Maintenant, si vous vous connectez en SSH à votre Mac, et que vous tentez d'utiliser
la commande, vous aller obtenir le message d'erreur suivant :
Mais quel est le fuck ?!
Voilà qui est fort fâcheux !
Il semble y avoir en effet une limitation posée par les développeurs, et qui empêche
d'utiliser utmctl lorsque vous ne l'appelez pas depuis un terminal local
sur votre Mac. Pourquoi donc ? Je n'en sais fichtrement rien... Je ne vois
pas l'intérêt, ni ce qui est passé par la tête des développeurs à ce moment-là.
Rien n'est parfait, et UTM de fait pas exception...
Mais fort heureusement, il est possible de contourner cette restriction... Et
TheRaphit vous a trouvé la solution, présente à aucun endroit dans
la documentation officielle d'UTM. Etant donné que GNU Screen ne
peut pas nous aider non plus, nous aller faire appel à tmux, qui va
nous sauver ! Si vous ne connaissez pas ce multiplexeur de terminal, sachez que
j'ai également écrit un guide pour celui-ci, c'est
l'article n°16. Bien que tmux ne soit pas installé
par défaut avec macOS, ce n'est pas très compliqué de se le procurer au moyen de
Homebrew, que je vous recommande
également vivement d'installer sur votre Mac (si ce n'était pas déjà fait).
Une fois une session tmux lancée depuis votre connexion SSH (ou récupérée depuis
celle-ci), la commande utmctl sera alors bien plus docile. :-)
Notez au passage l'emploi de ma splendide
configuration tmux,
disponible en téléchargement sur mon site. :-)
Vous pouvez effectuer énormément d'actions via la ligne de commande et même
écrire des scripts permettant de piloter la gestion des VM. Cependant, une
option pouvant s'avérer très utile, et dont le nom n'est pas très explicite,
est attach :
Au passage, je l'ai bien blouzé avec tmux ! Oui, j'avoue être
assez fier de moi...
En effet, au moment où nous avions reconfiguré notre VM en mode
« headless », pour pouvoir accéder à sa console il était nécessaire
d'obtenir au préalable le numéro de PTTY associé via la fenêtre principale d'UTM.
Toosla est très bien lorsque l'on peut afficher cette fenêtre sur son bureau,
mais à distance, on fait comment ? Je suis sûr que vous vous étiez posé la question. :-)
L'utilisation de utmctl attach répond à la problématique, et ce malgré le
message d'erreur un peu étrange. Il est en réalité possible que cette option ait été
prévue pour tout à fait autre chose à l'origine... On peut supposer qu'il est question,
ultérieurement, d'intégrer directement un moyen d'accéder à la console d'une VM
via utmctl , sans devoir faire appel à screen ou à un autre
émulateur de terminal.
Néanmoins en attendant, elle fournit l'information nécessaire, et c'est
ça qu'on veut !
Pour terminer, nous allons nous intéresser à la manière dont UTM stocke les
machines virtuelles sur le disque physique de votre Mac, ce qui nous permettra
d'effectuer facilement une sauvegarde de toutes vos VM.
Accéder à la dernière page du guide ⋙
Sauvegarde et restauration
UTM : la virtualisation sur macOS
[Page principale]
[(1) Installation d'une VM]
[(2) Démarrage automatique]
(3) Pilotage à distance
[(4) Sauvegarde et restauration]
La Revue de TheRaphit.com
![[Compteur]](https://webcounter.theraphit.com/scripts/Count.cgi?dd=B&ft=1&df=revue.dat)
Nombre de visiteurs
depuis le 13 mai 1997.
[Accueil]
[C'est quoi ?]
TheRaphit's Web Site - La dernière homepage du Web
[(Tout)2 Evangelion]
Webzine : La Revue
[Manga Pink Zone]
[Mathématiques]
[Nouveautés]
[Zone de téléchargement]
Site créé le 16 janvier 1997
©1997-2025 by TheRaphit
marina.theraphit.com
|