Installer une Machine Virtuelle Linux roulant dans VMware Fusion sous Mac OS X

A force de travailler sur plusieurs environnement de projets il est venu le réflexe d’utiliser des Machines Virtuelles (VM) pour contenir mes espaces de travail. Avec ce type d’installation je peut partager avec mes collègues au bureau la même installation mais qui roule sur chacun de nos postes de travail.

J’en ai parlé plusieurs fois (dont ici, ici. Je le fait depuis 2007 même). L’idée de cet article est de vous montrer comment j’ai fait pour mon poste de travail Mac OS X.

Les particularités de cette procédure est que:

  1. J’utilise la fonction de partage de dossier de VMware Fusion sur Mac OS X
    (Qui me permet d’avoir UN dossier dans le Mac et que la VM agit comme si c’était un dossier local)
  2. J’ai essayé Netbeans pour développer en PHP (lien de téléchargement)
    (au lieu d’Eclipse… mais en fait, les programmes utilisés dans la VM n’ont pas d’importance)
  3. J’utilise VMware Fusion (sur la même machine de travail) plutôt que VMware Server ou d’utiliser un serveur distant de VM (VMware server et/ou VMware ESXi).
  4. (Pas illustré comment faire) Les dossiers que j’ai mis un label mauve (voir captures d’écran) sont des dossiers qui ne sont pas synchronisés dans le Timecapsule. Car ça sert a rien d’archiver des dossiers de travail qui sont déjà sauvegardés dans un gestionnaire de source (Subversion, eh oui, encore!)

Les avantages de cette installation:

  1. Plus besoin de faire SCP, ni NFS, et sans FUSE (un mount (Wikipedia) mais, en SSH) pour partager entre les deux machines les dossiers
  2. On peut l’installer sur un ordinateur portable et ne pas avoir a attendre d’être sur le réseau pour travailler
  3. On peut sauver de l’espace disque en réduisant la taille des disques de la VM. Car l’espace de stockage des fichiers de travail sera dans les dossiers locaux du Mac.

Objectifs

  • Pouvoir utiliser l’espace de stockage du Mac natif pour les fichiers de travail plutot que d’utiliser l’espace disque de la machine virtuelle.

Ce qu’il faut

  • Avoir installé une VM sous Linux quelconque
  • La VM doit être locale au Mac
  • Une VM avec 10Go d’espace et moins est suffisant
  • Réseau en mode «Bridged»
  • Faire après une procédure similaire a NFS et d’avoir le meme uid et guid que le serveur

Procédure

Changer le uid et guid de l’utilisateur courrant

  1. Vérifier quel uid et guid, sous Mac, dans Applications > Terminal
    id
    uid=20001(renoirb) gid=20(staff) groups=20(staff),404(com.apple.sharepoint.group.3),204(_developer),100(_lpoperator),98(_lpadmin),81(_appserveradm),80(admin),79(_appserverusr),61(localaccounts),12(everyone),401(com.apple.access_screensharing),403(com.apple.sharepoint.group.2),402(com.apple.sharepoint.group.1),406(com.apple.sharepoint.group.5)

    Note sur le Mac, c’est 20001

  2. Se connecter a la VM locale, et y créer un compte backup pour effectuer les opérations
    ssh 192.168.0.100
    sudo -
    adduser patateuser
    ...
    usermod -a -G admin patateuser
  1. s’y déconnecter et se reconnecter
    exit
    ssh patateuser@192.168.0.100
  2. Savoir son user id sur la machine Linux
    id
    uid=1000(renoirb) gid=1000(renoirb) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(renoirb)

    Note sur la VM, c’est 1000

  3. Changer les permissions du dossier user vigr et vipw
    Commandes a faire en root, puis en vim pour modifier le uid d’un usager

    sudo -s
    vipw
    ~
    :%s/1000/20001/g
    :wq
  4. Changer les permissions du /home/PATATEUSER
    Avant de faire le chown il faut s’assurer en regardant a l’intérieur du homedir cible à la VM si il n’y a pas un alias vers autre chose. Question de ne pas changer les permissions de d’autres fichiers dans l’arborescence et affecter ailleurs que dans le système
    cd /home
    chown -R renoirb:renoirb renoirb/

    Attendre …

  5. Tenter de se reconnecter DANS UN AUTRE SESSION SSH

    Pourquoi?

    Parceque si quelque chose de malencontreux se serait produit durant le chown, le login ne pourrait pas marcher

    ssh renoirb@192.168.0.100
  6. Croiser les doigts
  7. Tester si le ID est changé
    id
    uid=20001(renoirb) gid=20001(renoirb) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),20001(renoirb)

    Good!

Partage dossiers entre le Mac et la VM Linux

Idéal pour utiliser l’espace disque Mac pour y stocker des documents de travail utilisés a l’intérieur de la VM.

Avantage de faire ça

Ce qui est bien de tout ça c’est que l’espace disque de la VM peut rester petit et contenir les outils de travail (Apache, PHP, Eclipse/netbeans) et avoir le gros des dossiers de travail (workspace) dans la machine native.

  1. Lancer VMWare Fusion

    Panneau de paramètres VMware Fusion pour Mac OS X
  2. Aller dans Settings > Sharing (Partage)

    Panneau paramètres VMware Fusion pour Mac OS X écran Partage
  3. Ajouter le partage désiré (le petit +)

    Recommendation

    Pour éviter tout risque de souçis de chemins entre les deux machines. Ne pas utiliser un dossier avec des espaces.

  4. Aller dans la VM

    Tunnel X11

    L’idée du Tunnel X est pour permettre de rouler une application locale (a la VM) a l’extérieur (donc afficher sur le Mac).

    ssh -X renoirb@192.168.0.100
  5. Lier le dossier partagé du Mac a un dossier local a la VM (workspace)… Sur la VM
    sudo -s
    ln -s /mnt/hgfs/workspace/ /home/renoirb/workspace
  6. Exécuter le programme distant
    netbeans &

    Note Le «amperstand» (& ou perluet) sert a préciser que le programme roulera en arrière-plan.

  7. Configurer l’outil de développement pour qu’il puise ses fichiers de travail DANS /home/renoirb/workspace

    Note

    Netbeans n’utilise pas le meme type de chemin et c’est différent d’un outil de développement a l’autre.

  8. Résultat

Références