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:
- 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)
- 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)
- 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).
- (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:
- Plus besoin de faire SCP, ni NFS, et sans FUSE (un mount (Wikipedia) mais, en SSH) pour partager entre les deux machines les dossiers
- On peut l'installer sur un ordinateur portable et ne pas avoir a attendre d'être sur le réseau pour travailler
- 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
- 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
- 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
- s'y déconnecter et se reconnecter
exit ssh patateuser@192.168.0.100
- 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
- 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
- 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èmecd /home chown -R renoirb:renoirb renoirb/
Attendre ...
- 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
- Croiser les doigts
- 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.
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.
- Lancer VMWare Fusion
[caption id="attachment_2304" align="alignnone" width="216" caption="Panneau de paramètres VMware Fusion pour Mac OS X"][/caption]
- Aller dans Settings > Sharing (Partage)
[caption id="attachment_2305" align="alignnone" width="300" caption="Panneau paramètres VMware Fusion pour Mac OS X écran Partage"][/caption]
- 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.
- 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
- 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
- Exécuter le programme distant
netbeans &
Note Le «amperstand» (& ou perluet) sert a préciser que le programme roulera en arrière-plan.
- 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.
- Résultat