J'ai créé un fichier Vagrant avec le contenu suivant:
Vagrant::Config.run do |config|
config.vm.define :foo do |cfg|
cfg.vm.box = 'foo'
cfg.vm.Host_name = "foo.localdomain.local"
cfg.vm.network :hostonly, "192.168.123.10"
end
Vagrant.configure("2") do |cfg|
cfg.vm.customize [ "modifyvm", :id , "--name", "foo" , "--memory", "2048", "--cpus", "1"]
cfg.vm.synced_folder "/tmp/", "/tmp/src/"
end
end
Après vagrant up
ou vagrant reload
Je reçois:
[foo] Attempting graceful shutdown of VM...
[foo] Setting the name of the VM...
[foo] Clearing any previously set forwarded ports...
[foo] Fixed port collision for 22 => 2222. Now on port 2200.
[foo] Creating shared folders metadata...
[foo] Clearing any previously set network interfaces...
[foo] Preparing network interfaces based on configuration...
[foo] Forwarding ports...
[foo] -- 22 => 2200 (adapter 1)
[foo] Booting VM...
[foo] Waiting for VM to boot. This can take a few minutes.
[foo] VM booted and ready for use!
[foo] Setting hostname...
[foo] Configuring and enabling network interfaces...
[foo] Mounting shared folders...
[foo] -- /vagrant
Mes questions sont:
/vagrant
dossier partagé? Je lis les dossiers partagés qui sont obsolètes au profit des dossiers synchronisés et je n'ai jamais défini de dossier partagé dans mon Vagrantfile.J'utilise la version 1.2.7 de Vagrant sur MacOX 10.8.4.
Fondamentalement, les dossiers partagés sont renommés en dossiers synchronisés de v1 à v2 (docs). Sous le capot, ils utilisent toujours vboxsf
entre l'hôte et l'invité (des problèmes de performances sont connus s'il existe un grand nombre de fichiers/répertoires).
/vagrant
Dans guestVagrant monte le répertoire de travail actuel (où Vagrantfile
réside) en tant que /vagrant
Dans l'invité, il s'agit du comportement par défaut.
Voir docs
REMARQUE: Par défaut, Vagrant partagera votre répertoire de projet (le répertoire avec Vagrantfile) avec/vagrant.
Vous pouvez désactiver ce comportement en ajoutant cfg.vm.synced_folder ".", "/vagrant", disabled: true
Dans votre Vagrantfile
.
Basé sur la sortie /tmp
Sur l'hôte N'a PAS été monté pendant la phase de démarrage.
Utilisez VAGRANT_INFO=debug vagrant up
Ou VAGRANT_INFO=debug vagrant reload
Pour démarrer le VM) pour obtenir plus d'informations sur la raison pour laquelle le dossier synchronisé n'est pas monté. Il peut s'agir d'un problème d'autorisation (bits de mode de /tmp
Sur l'hôte doit être drwxrwxrwt
).
J'ai fait un test test rapide en utilisant ce qui suit et cela a fonctionné (j'ai utilisé opscode bento raring vagrant base box)
config.vm.synced_folder "/tmp", "/tmp/src"
sortie
$ vagrant reload
[default] Attempting graceful shutdown of VM...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Available bridged network interfaces:
1) eth0
2) vmnet8
3) lxcbr0
4) vmnet1
What interface should the network bridge to? 1
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Running 'pre-boot' VM customizations...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant
[default] -- /tmp/src
Dans la machine virtuelle, vous pouvez voir les informations de montage /tmp/src on /tmp/src type vboxsf (uid=900,gid=900,rw)
.