Comment créer un espace de travail informatique virtuel

Cet article est basé sur un chapitre de mon livre en ligne gratuit, Solving for Technology: apprendre rapidement de nouvelles compétences utiles dans un monde technologique en pleine mutation. Mon site informatique Bootstrap contient bien d'autres choses, notamment des liens vers mon livre Linux in Action et un cours hybride appelé Linux in Motion, composé de plus de deux heures de vidéo et d'environ 40% du texte de Linux. en action.

Avez-vous déjà complètement arrosé votre poste de travail ou votre ordinateur portable principal tout en testant une nouvelle technologie? Ou avez-vous tellement de paquets installés et leurs dépendances installés que vous n'avez plus aucune idée de ce qui fait que vos expériences réussissent ou échouent?

La virtualisation peut vous fournir un environnement propre, rapide et léger où vous pouvez tester le contenu de votre coeur. Vous n'êtes même pas limité au système d'exploitation de votre ordinateur hôte. C'est donc un excellent moyen de voir comment les choses fonctionnent sur plusieurs plates-formes.

Une fois que vous avez terminé - ou si tout s’effondre dans un échec glorieux - vous pouvez simplement tuer votre environnement et en déclencher un nouveau pour le remplacer. Pas de mal.

Dans cet article, je vais explorer VirtualBox et les conteneurs Linux (LXC) en tant qu’outils permettant de fournir des environnements de système d’exploitation virtuels facilement réplicables et partageables. Je finirai par quelques réflexions sur la rédaction de code et la construction de piles de logiciels directement dans des environnements virtuels.

VirtualBox

Alors, dites «bonjour» au produit hyperviseur gratuit multi-plateformes Oracle VirtualBox et, en particulier, à quelques astuces avancées pour maximiser la valeur de votre investissement (gratuit). VirtualBox est quelque chose que vous pouvez utiliser sur n’importe quel système d’exploitation pour créer des ordinateurs virtualisés exécutant à peu près n’importe quelle version de Windows ou de Linux.

Vous devez toujours obtenir une licence pour chaque image Windows que vous décidez d'exécuter, même si vous êtes généralement libre d'installer et d'utiliser des copies sans activer la licence pendant environ un mois.

Si vous avez déjà lu mon livre Linux in Action et que certains de ces documents vous semblent familiers, c’est parce que ce chapitre est une version réduite du chapitre 2 de Linux in Action. Le contenu a été mis à disposition avec l’aimable autorisation de Manning Publications.

Débuter avec VirtualBox

VirtualBox fournit un environnement dans lequel vous pouvez lancer autant d'ordinateurs virtuels que vos ressources de système physique peuvent en gérer. Et, bien sûr, c’est un outil particulièrement utile pour tester et acquérir en toute sécurité de nouvelles compétences en matière d’administration - ce qui est notre objectif principal pour le moment.

Installer VirtualBox

Vous voulez essayer tout cela à partir d'un PC Windows? Rendez-vous sur le site Web de VirtualBox et téléchargez l'archive exécutable. Cliquez sur le fichier que vous avez téléchargé, puis suivez quelques étapes de configuration (les valeurs par défaut devraient toutes fonctionner). Enfin, on vous demandera si vous êtes d'accord avec une éventuelle réinitialisation de vos interfaces réseau et si vous souhaitez installer VirtualBox. Bien sûr, vous êtes et faites.

Il est encore plus simple d’installer VirtualBox sur une machine Ubuntu Linux. Juste deux commandes:

sudo apt update
sudo apt install virtualbox

Définir une machine virtuelle

Je ne sais pas si vous avez déjà assemblé un ordinateur physique à partir de composants, mais il peut être impliqué. Définir une nouvelle machine virtuelle dans VirtualBox fonctionne à peu près de la même manière. La seule différence significative est que, plutôt que de devoir se mettre à quatre pattes avec une lampe de poche serrée entre les dents pour ajouter manuellement de la RAM et un disque de stockage à votre boîtier, VirtualBox vous permet de définir les spécifications de votre machine virtuelle en cliquant sur votre Souris.

Après avoir cliqué sur Nouveau dans l'interface de VirtualBox, vous donnerez à la machine virtuelle que vous êtes sur le point de créer un nom descriptif et, comme vous pouvez le constater sur la figure, le logiciel doit pouvoir renseigner correctement les champs Type et Version automatiquement. Le type et la version que vous sélectionnez ici n’installeront pas de système d’exploitation réel, mais serviront simplement à appliquer les paramètres d’émulation du matériel appropriés.

Boîte de dialogue Créer une machine virtuelle: VirtualBox essaiera de deviner votre système d'exploitation et sa version pour vous proposer ultérieurement des choix intelligents par défaut

Sur l’écran suivant, vous allouerez de la RAM à votre VM. Sauf si vous envisagez quelque chose de particulièrement exigeant - comme héberger un essaim de conteneurs ou faire fonctionner un serveur Web occupé - le montant par défaut (768 Mo) devrait convenir. Vous pouvez certainement lui donner plus de RAM si nécessaire, mais n'oubliez pas de laisser suffisamment de place pour votre ordinateur hôte et toutes les autres machines virtuelles qui pourraient déjà y vivre. Donc, si votre hôte ne dispose que de 4 Go de RAM physique, vous ne voudrez probablement pas en donner la moitié à votre VM.

Tenez compte de ces limites si vous décidez éventuellement d'exécuter plusieurs ordinateurs virtuels à la fois, ce qui sera utile pour tester des projets d'infrastructure plus complexes. Même si chaque machine virtuelle utilise uniquement la quantité de mémoire par défaut, deux ou trois d'entre elles peuvent commencer à ronger la RAM nécessaire aux opérations de l'hôte normales.

Définir votre disque dur virtuel

Qu'est-ce qu'un ordinateur sans disque dur? Le processus d’installation de VirtualBox vous demandera maintenant si vous souhaitez créer un nouveau disque virtuel pour votre VM ou en utiliser un qui existe déjà. Il peut arriver que vous souhaitiez partager un seul disque entre deux ordinateurs virtuels, mais pour cet exercice, je suppose que vous souhaiterez recommencer à zéro. Alors sélectionnez "Créer un disque dur virtuel maintenant".

L’écran suivant vous permet de choisir un format de fichier de disque dur pour le disque que vous êtes sur le point de créer. Sauf si vous envisagez d’exporter ultérieurement le disque pour l’utiliser dans un autre environnement de virtualisation, le format d’image de disque VirtualBox (VDI) par défaut fonctionnera correctement.

De plus, je n’ai jamais regretté d’utiliser l’option par défaut «Alloué dynamiquement» pour déterminer la manière dont le lecteur virtuel consommera de l’espace sur l’hôte. Par «dynamique», ils signifient que l'espace sur le disque de stockage hôte sera alloué à la machine virtuelle uniquement selon les besoins. Si l'utilisation du disque de la machine virtuelle reste faible, moins d'espace hôte sera alloué.

En revanche, un disque de taille fixe se voit attribuer tout son potentiel d’espace, quelle que soit la quantité réellement utilisée. Le seul avantage de la «taille fixe» réside dans les performances des applications, mais comme je n’utilise généralement que des machines virtuelles VirtualBox pour les tests et les expériences, j’évite bien le compromis.

Lorsque VirtualBox sait que vous recherchez Linux, et parce que Linux exploite efficacement l’espace de stockage, VirtualBox ne vous proposera probablement que 8 Go de la taille totale du disque sur l’écran suivant (illustré ci-dessous). À moins que vous n'ayez des projets exceptionnellement gros pour la machine virtuelle (par exemple, vous allez travailler avec des opérations de base de données sérieuses), tout ira bien. Par contre, si vous aviez choisi Windows comme système d’exploitation, le choix par défaut aurait été de 25 Go, et ce pour une bonne raison: Windows n’hésite pas à demander beaucoup de ressources. C’est une excellente illustration de la façon dont Linux est si bien adapté aux environnements virtuels.

Si nécessaire, votre disque virtuel peut atteindre 2 To - ou l'espace libre maximum sur le périphérique hôte.

Vous pouvez également modifier le nom et l'emplacement que VirtualBox utilisera pour votre disque sur cet écran.

Lorsque vous avez terminé, cliquez sur Créer et la nouvelle machine virtuelle apparaîtra dans la liste des machines virtuelles située à gauche du gestionnaire VirtualBox. Profitez du goût du succès, mais vous n’avez pas fini: c’était juste la machine. Maintenant, vous aurez besoin d’un système d’exploitation pour lui donner vie.

Télécharger un système d'exploitation

Maintenant que vous avez défini le profil matériel virtuel de votre nouvelle machine virtuelle, voici ce qui reste à faire:

  • Téléchargez un fichier (au format ISO) contenant l'image du système d'exploitation que vous souhaitez utiliser.
  • Démarrez la nouvelle machine virtuelle à l’aide d’un lecteur de DVD virtuel contenant l’ISO que vous avez téléchargé.
  • Suivez le processus d'installation standard du système d'exploitation
  • Démarrez la VM et lancez le système d'exploitation que vous venez d'installer.

Vous devrez télécharger un fichier .ISO contenant les fichiers du système d’exploitation et le programme d’installation. Pour trouver le bon fichier, il suffit généralement de rechercher sur Internet le nom de la distribution et le mot «télécharger». Dans le cas d'Ubuntu, vous pouvez également vous rendre sur la page ubuntu.com et cliquer sur l'onglet Téléchargements comme vous le voyez sur la figure. Notez les différentes versions d'Ubuntu disponibles. Si vous envisagez d’utiliser cette machine virtuelle pour des tâches d’administration, la version serveur, petite et rapide, constitue probablement un meilleur choix que Desktop.

La liste déroulante Téléchargements sur la page d'accueil d'Ubuntu.com. Notez la gamme de versions offertes par Ubuntu

Validez l'archive ISO que vous avez téléchargée

Les gros fichiers peuvent parfois être corrompus pendant le processus de téléchargement. Si un seul octet de votre .ISO a été modifié, il est possible que l’installation ne fonctionne tout simplement pas. Parce que vous ne voulez pas investir du temps et de l’énergie uniquement pour découvrir qu’il ya un problème avec le téléchargement, il est toujours bon de calculer immédiatement la somme de contrôle (ou de hachage) du fichier .ISO que vous avez téléchargée pour vérifier que tout fonctionne correctement. comme c'était.

Pour ce faire, vous devez obtenir la somme de contrôle SHA ou MD5 appropriée. Il s’agit d’une longue chaîne ressemblant à ceci:

4375b73e3a1aa305a36320ffd7484682922262b3

Dans le cas d’Ubuntu, cela signifierait aller sur la page Web de releases.ubuntu.com, en cliquant sur le répertoire correspondant à la version que vous avez téléchargée, puis en cliquant sur l’un des liens menant à une somme de contrôle (comme par exemple, SHA1SUMS).

Vous devriez comparer la chaîne appropriée de cette page avec les résultats d'une commande exécutée à partir du même répertoire que votre .ISO téléchargé, qui pourrait ressembler à ceci:

$ shasum ubuntu-16.04.2-server-amd64.iso

S'ils correspondent, vous êtes en affaires. Si ce n’est pas le cas (et que vous avez revérifié pour vous assurer que vous regardez bien la bonne version), vous devrez peut-être télécharger le fichier .ISO une seconde fois.

Installer un système d'exploitation

Une fois votre fichier .ISO en place, retournez dans VirtualBox. La VM que vous venez de créer étant mise en surbrillance dans le panneau de gauche, cliquez sur le bouton vert Démarrer en haut de l'application. Vous serez invité à sélectionner un fichier .ISO dans votre système de fichiers à utiliser comme lecteur de DVD virtuel. Naturellement, vous choisirez celui que vous venez de télécharger. La nouvelle VM lira ce DVD et lancera une installation de système d'exploitation.

La plupart du temps, le processus d'installation ira bien. Cependant, la description de solutions à chacune des nombreuses petites choses qui pourraient mal tourner nécessiterait une panoplie d'articles. Par conséquent, si vous rencontrez des difficultés, vous pouvez consulter la documentation et les guides disponibles pour votre système d'exploitation ou partager votre question avec la communauté en ligne.

Lorsque tout est bien installé, il reste peut-être encore quelques éléments à prendre en compte avant de pouvoir démarrer avec succès sur votre machine virtuelle. L'entrée de votre ordinateur virtuel étant en surbrillance, cliquez sur l'icône jaune Paramètres. Vous pouvez y jouer avec l’environnement et les paramètres matériels de votre machine virtuelle.

En cliquant sur Réseau, par exemple, vous permet de définir la connectivité réseau. Si vous souhaitez que votre machine virtuelle dispose d’un accès Internet complet via l’interface réseau de la machine hôte, comme indiqué ci-dessous, vous pouvez sélectionner «Carte pontée» dans le menu déroulant Connecté, puis le nom de la carte de votre hôte.

L'onglet Réseau de l'écran Paramètres. Vous pouvez déterminer le type d’interface réseau (ou d’interfaces) à utiliser pour votre machine virtuelle.
L'utilisation d'un adaptateur ponté n'est peut-être pas toujours votre premier choix et présente parfois un risque pour la sécurité. En fait, choisir «Réseau NAT» est un moyen plus courant de fournir à une machine virtuelle un accès à Internet. Cependant, un réseau ponté est le moyen le plus simple d’obtenir une connectivité réseau complète. C’est donc une approche utile, tout au moins pour les tests.

Ces sections suivantes sont un peu bonus-y, mais qui n'aime pas les trucs gratuits? Je vais vous parler de deux astuces liées: comment organiser vos machines virtuelles VirtualBox afin d’en faire tourner de nouvelles aussi rapidement que possible et comment utiliser la ligne de commande pour partager des machines virtuelles sur un réseau.

Clonage de machines virtuelles pour des démarrages rapides

L'un des avantages les plus évidents du travail avec les ordinateurs virtuels est la possibilité d'accéder rapidement à un environnement de système d'exploitation frais et propre. Mais si accéder à cet environnement nécessite de passer par le processus d’installation complet, je ne vois pas beaucoup de «rapidement».

Jusqu'à ce que vous ajoutiez le clonage au clonage. Pourquoi ne pas conserver votre machine virtuelle d'origine dans son état de post-installation et créer simplement un clone identique chaque fois que vous souhaitez effectuer un travail réel?

C'est facile. Jetez un autre coup d'œil à l'application VirtualBox. Sélectionnez la machine virtuelle (arrêtée) que vous souhaitez utiliser en tant que copie maîtresse, cliquez sur le lien du menu Machine, puis sur Cloner. Vous confirmerez le nom que vous souhaitez donner à votre clone, puis, après avoir cliqué sur Suivant, si vous souhaitez créer un clone complet (ce qui signifie que des copies de fichiers entièrement nouvelles seront créées pour la nouvelle VM) ou un clone lié (ce qui signifie le nouveau VM partagera tous les fichiers de base avec son maître, tout en conservant votre nouveau travail séparément).

La sélection de l'option Lié ira beaucoup plus rapidement et prendra beaucoup moins de place sur votre disque dur. Le seul inconvénient est que vous ne pourrez pas déplacer ce clone particulier sur un autre ordinateur ultérieurement. C'est ton choix.

Cliquez maintenant sur Cloner et une nouvelle machine virtuelle apparaîtra dans le panneau de la machine virtuelle. Démarrez-le comme vous le feriez normalement, puis connectez-vous en utilisant les mêmes informations d'identification que celles définies sur le maître.

Gestion des ordinateurs virtuels à partir de la ligne de commande

VirtualBox est livré avec son propre shell en ligne de commande, appelé à l’aide de vboxmanage. Pourquoi s'embêter avec la ligne de commande? Entre autres avantages, cela vous permettra de travailler sur des serveurs distants, ce qui peut considérablement augmenter la portée des projets possibles. Pour voir comment vboxmanage fonctionne, utilisez list vms pour répertorier tous les ordinateurs virtuels actuellement disponibles sur votre système. Voici à quoi ça ressemble sur ma machine:

$ vboxmanage list vms
“Ubuntu-16.04-template” {c00d3b2b-6c77–4919–85e2–6f6f28c63d56}
“Centos-7-template” {e2613f6d-1d0d-489c-8d9f-21a36b2ed6e7}
“Kali-Linux-template” {b7a3aea2–0cfb-4763–9ca9–096f587b2b20}
“Site-projet” {2387a5ab-a65e-4a1d-8e2c-25ee81bc7203}
“Ubuntu-16-lxd” {62bb89f8–7b45–4df6-a8ea-3d4265dfcc2f}

vboxmanage clonevm effectuera le même type d'action de clonage que décrit ci-dessus à l'aide de l'interface graphique. Ici, je fais un clone de la machine virtuelle Kali-Linux-template, en nommant la copie "newkali":

$ vboxmanage clonevm Kali-Linux-template --name newkali

Cela fonctionnera bien tant que je n'aurai besoin que d'utiliser la nouvelle machine virtuelle ici, sur mon ordinateur local. Mais supposons que je veuille que les autres membres de mon équipe aient une copie exacte de cette machine virtuelle - peut-être pour pouvoir tester quelque chose sur lequel je travaille. Pour cela, je devrai convertir la machine virtuelle en un format de fichier normalisé. Voici comment exporter une machine virtuelle locale vers un fichier à l’aide du format .OVA (Open Virtualization Format):

$ vboxmanage export website-project -o website.ova
0%… 10%… 20%… 30%… 40%… 50%… 60%… 70%… 80%… 90%… 100%
Exporté avec succès 1 machine (s).

Ensuite, vous devrez copier le fichier .OVA sur l’ordinateur de votre collègue. Gardez à l’esprit que le fichier ne sera, en aucune manière, considéré comme petit et délicat. Si vous n’avez pas de bande passante réseau à revendre pour un transfert de plusieurs Go, envisagez de le déplacer via un périphérique USB.

Une fois le transfert terminé, il ne reste plus, à partir de l’ordinateur distant, à importer la machine virtuelle dans la VirtualBox de cette machine. La commande est simple:

$ vboxmanage import docker.ova

Confirmez que l'opération d'importation a fonctionné à l'aide de list vms et essayez de lancer la machine virtuelle à partir du bureau.

$ vboxmanage list vms
“Projet-docker” {30ec7f7d-912b-40a9–8cc1-f9283f4edc61}

Si vous n'avez besoin d'aucun accès distant sophistiqué, vous pouvez également partager une machine virtuelle à partir de l'interface graphique. Avec la machine que vous voulez partager en surbrillance, cliquez sur le menu Fichier, puis sur Exporter le matériel.

À venir: le monde merveilleux et mystérieux de LXC.

VirtualBox est idéal pour exécuter des opérations nécessitant un accès au noyau, lorsque vous avez besoin de sessions de bureau à interface graphique ou pour tester des systèmes d'exploitation de cas de marché de niche. Mais si vous êtes sur une machine Linux et que vous avez simplement besoin d’un accès rapide à un environnement Linux propre et que vous ne recherchez pas de version spéciale, vous auriez bien du mal à battre les conteneurs Linux.

À quelle vitesse sont les conteneurs LXC? Vous verrez vous-même assez vite. Toutefois, comme ils partagent habilement de nombreuses ressources système avec l'hôte et d'autres conteneurs, ils fonctionnent comme des serveurs autonomes complets tout en n'utilisant qu'un minimum d'espace de stockage et de mémoire.

REMARQUE: Nous allons discuter du LXC classique, mais sachez qu’il existe un environnement similaire développé par les mêmes développeurs, appelé LXD. LXD est essentiellement une implémentation plus récente de l'interface LXC. Il utilise toujours LXC sous le capot, mais fournit un ensemble de commandes différent qui étend les fonctionnalités à l'administration réseau à distance.

Débuter avec LXC

Installer LXC sur votre poste de travail Ubuntu? Part de gâteau:

sudo apt update
sudo apt install lxc

C'est ça. Nous sommes prêts à nous mettre au travail. Les compétences de base de LXC sont en réalité assez simples. Je vais vous montrer les trois ou quatre commandes dont vous aurez besoin pour que tout fonctionne, puis un conseil d’initié qui, une fois que vous aurez compris comment LXC s’organise, vous emportera.

Lancez votre premier conteneur

Pourquoi ne pas plonger et créer votre premier conteneur? La valeur donnée à -nset le nom que je veux utiliser pour le conteneur et -t indique à LXC de construire le conteneur à partir du modèle Ubuntu.

$ sudo lxc-create -n mycont -t ubuntu

Si vous avez décidé de créer, par exemple, un conteneur CentOS, vous devez noter les dernières lignes de la sortie, car il contient des informations sur le mot de passe que vous devez utiliser pour vous connecter:

$ sudo lxc-create -n centos_lxc -t centos
[...]
Le mot de passe root temporaire est stocké dans:
        '/ var / lib / lxc / centos_lxc / tmp_root_pass'

Vous vous connecterez en utilisant le nom d'utilisateur «root» et le mot de passe contenu dans ce fichier. Si, en revanche, votre conteneur utilisait le modèle Ubuntu, vous utiliserez «ubuntu» pour votre nom d’utilisateur et votre mot de passe. Naturellement, si vous envisagez d’utiliser ce conteneur à des fins sérieuses, vous voudrez changer ce mot de passe immédiatement.

Utilisez lxc-ls --fancy pour vérifier l’état de votre conteneur:

$ sudo lxc-ls --fancy
NOM ÉTAT AUTOSTART GROUPES IPV4 IPV6
mycont ARRETE 0 - - -

Eh bien, cela existe, mais apparemment, il faut commencer. Comme auparavant, le -n spécifie par son nom le conteneur que vous voulez démarrer. -d signifie "detach" - ce qui signifie que vous ne voulez pas être automatiquement déposé dans une session interactive au démarrage du conteneur.

$ sudo lxc-start -d -n moncontenu

Lister vos conteneurs devrait maintenant afficher quelque chose comme ceci:

$ sudo lxc-ls --fancy
NOM ÉTAT AUTOSTART GROUPES IPV4 IPV6
mycont RUNNING 0 - 10.0.3.142 -

Cette fois, le conteneur est en cours d'exécution et a reçu une adresse IP. Vous pouvez utiliser cette adresse pour vous connecter à l'aide d'une session shell sécurisée.

$ ssh ubuntu@10.0.3.142

Vous pouvez également lancer une session shell racine dans un conteneur en cours d'exécution à l'aide de lxc-attach.

$ sudo lxc-attach -n mycont
root @ mycont: / #

Lorsque vous avez fini de jouer avec votre nouveau conteneur, vous pouvez soit exécuter exitto pour vous déconnecter en laissant le conteneur actif:

root @ mycont: / # exit
sortie

… Ou fermez le conteneur en utilisant shutdown -h maintenant.

Mais avant cela, voyons à quel point les conteneurs LXC sont rapides. Le -hflag que j'ai ajouté à l'arrêt juste avant signifie "stop". Si j'utilisais rinstead plutôt que de fermer définitivement, le conteneur redémarrerait. Lançons donc reboot puis essayons de vous reconnecter immédiatement pour voir combien de temps il faut au conteneur pour se relever.

root @ mycont: / # shutdown -r now
sudo lxc-attach -n mycont

Comment ça c'est passé? Je parie que, au moment où vous avez réussi à retaper la commande lxc-attach, moncont était réveillé et prêt à passer à l'action. Mais saviez-vous que le fait d'appuyer sur la flèche vers le haut dans Bash remplira la ligne de commande avec la commande précédente. En utilisant cela, il serait encore plus rapide de demander une connexion. Dans mon cas, il n'y a pas eu de retard notable. Le conteneur s'est arrêté et a complètement redémarré en moins de 2 secondes!

Les conteneurs Linux sont également très faciles sur les ressources système. Contrairement à mon expérience avec les ordinateurs virtuels VirtualBox - où l'exécution simultanée de trois ordinateurs commence déjà à avoir un impact important sur les performances de mon poste de travail hôte de 8 Go -, je peux lancer tous types de conteneurs LXC sans ralentissement.

Fixation d'un conteneur LXC froid

Maintenant, qu'en est-il de cette astuce que je vous ai promise? De retour dans un terminal de la machine hôte (par opposition au conteneur), vous devrez ouvrir un shell d’administrateur à l’aide de sudo su. A partir de maintenant - jusqu'à ce que vous tapiez exit - vous serez sudo à temps plein.

$ sudo su
[sudo] mot de passe pour le nom d'utilisateur:
#

Maintenant changez de répertoire en / var / lib / lxc / et listez le contenu. Vous devriez voir un répertoire avec le nom de votre conteneur. Si vous avez d'autres conteneurs sur le système, ils auront également leurs propres répertoires.

# cd / var / lib / lxc
# ls
moncont

Déplacez-vous dans votre répertoire de conteneur et listez son contenu. Il y aura un fichier appelé "config" et un répertoire appelé "rootfs". Le «fs» signifie «système de fichiers».

# cd mycont
# ls
config rootfs

C’est le répertoire rootfs que je veux vraiment que vous voyiez maintenant:

# cd rootfs
# ls
bin dev maison lib64 mnt proc exécuter srv tmp var
démarrage, etc. lib média opt racine sbin sys usr

Tous ces sous-répertoires qui remplissent les rootfs… vous semblent-ils familiers? Bien sûr! Ils font tous partie de la norme de hiérarchie des systèmes de fichiers Linux. Il s’agit essentiellement du répertoire racine (/) du conteneur… mais du système de fichiers de l’hôte. Tant que vous disposez des autorisations d'administrateur sur l'hôte, vous pourrez parcourir ces répertoires et modifier les fichiers de votre choix, même lorsque le conteneur n'est pas en cours d'exécution.

Vous pourrez faire toutes sortes de choses avec cet accès, mais en voici un qui peut très probablement sauver votre vie (professionnelle) un jour. Supposons que vous fassiez quelque chose de stupide sur un conteneur et que vous vous verrouilliez, rien ne vous empêche maintenant de naviguer dans le système de fichiers, de réparer le fichier de configuration que vous avez foiré et de retourner au travail. Allez-y: dites-moi que ce n’est pas cool.

Besoin de monter un seul processus sur un conteneur arrêté? Utilisez simplement chroot comme je le décris dans cet article.

Mais ça va mieux. Il est vrai que l’écosystème Docker a acquis de nombreuses couches de fonctionnalités et de sophistication depuis que la technologie a quitté l’ombre de LXC il ya quelques années. Sous le capot, toutefois, il repose toujours sur un paradigme structurel de base qui sera immédiatement reconnaissable par toute personne familiarisée avec LXC.

Cela signifie que si vous êtes enclin à tester la technologie de virtualisation à la croissance la plus rapide de la décennie, vous avez déjà la peau dans le jeu.

Écrire du code sur un serveur distant

Maintenant que vous avez compris ces trucs d’environnement virtuel, que pouvez-vous faire avec ‘em? Eh bien, il est évident que de telles configurations conviennent parfaitement aux outils et architectures système.

Supposons que vous n’êtes pas dans le système, mais que vous souhaitiez un endroit sûr pour créer des applications. Qu'est-ce que je veux dire par «en sécurité?». Je parle d'un environnement dans lequel vous pouvez installer librement des bibliothèques et des packages de dépendance sans avoir à vous soucier de la déstabilisation de votre ordinateur de travail personnel.

Mais il y a des limites à la distance que cela peut vous prendre. Il se passe beaucoup de choses sous la surface d’EDI comme Eclipse ou Visual Studio, et les utilisateurs sont très attachés à leur confort. Mais s’attendre à pouvoir exécuter facilement toutes ces couches de complexité sur une connexion distante - et en particulier sur un serveur distant sans tête - est peut-être un peu ambitieux.

Néanmoins, ne seriez-vous pas content de travailler sur l'EDI sur votre ordinateur portable et de faire enregistrer le code, le compiler et l'exécuter à distance… sur une machine virtuelle ou une instance cloud hébergée? Ainsi, vous pourrez créer vos applications sur les serveurs où elles seront exécutées sans risquer de perdre la stabilité de votre propre poste de travail.

Ça peut être fait. Généralement, le truc consiste à obtenir de votre IDE une session SSH (Secure Shell). Pour plus de détails, recherchez sur Internet quelque chose du type "éclipse modifier le code java sur un serveur distant".

Cet article est basé sur un chapitre de mon livre en ligne gratuit, Solving for Technology: apprendre rapidement de nouvelles compétences utiles dans un monde technologique en pleine mutation. Mon site informatique Bootstrap contient bien d'autres choses, notamment des liens vers mon livre Linux in Action et un cours hybride appelé Linux in Motion, composé de plus de deux heures de vidéo et d'environ 40% du texte de Linux. en action.