当前设置:带有Vagrant 1.9.3的Virtualbox 5.1.20
以前的工作设置:带有Vagrant 1.9.3的Virtualbox 5.1.18
我安装了最新版本的Virtualbox并尝试启动我的VM.文件夹安装已停止工作.相同的文件夹安装在Virtualbox 5.1.18中正常工作.我收到以下错误消息:
Vagrant无法挂载VirtualBox共享文件夹.这通常是因为文件系统"vboxsf"不可用.该文件系统通过VirtualBox Guest Additions和内核模块提供.请验证这些客人添加内容是否已在guest虚拟机中正确安装.这不是Vagrant中的错误,通常是由错误的Vagrant框引起的.对于上下文,尝试的命令是:
Run Code Online (Sandbox Code Playgroud)mount -t vboxsf -o uid=1000,gid=1000 keys /keys该命令的错误输出是:
Run Code Online (Sandbox Code Playgroud)mount: wrong fs type, bad option, bad superblock on keys, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so.
我试过手动安装vagrant-vbguest插件(via vagrant plugin install vagrant-vbguest),但没有修复.降级回5.1.18确实解决了这个问题,但这并不是理想的进展.
如何使用Virtualbox 5.1.20和Vagrant 1.9.3进行文件夹安装?
我正在使用vagrant在VirtualBox中创建一个Red Hat Enterprise Linux 7 VM.如果我有一个基本框,它既没有VirtualBox客户添加,也没有注册,那么我手动需要执行以下操作:
我需要首先执行注册的原因是要安装guest虚拟机添加,我需要安装一些额外的包.
现在,有这些任务的第三方流浪汉插件:vagrant-registration和vagrant-vbguest.
我遇到的问题是该vagrant-vbguest插件将始终首先尝试运行,并且无法下载所需的软件包,因为该vagrant-registration插件还没有机会注册系统.
有没有办法强迫其中一个在另一个之前运行?或者我还没有想过的任何其他替代解决方案(我不是流浪精灵(或者只是被称为流浪汉?))?
尝试NFS在Vagrant 中将插件与同步文件夹一起使用,并且它正在工作,但在guest虚拟机(VM)中权限是错误的:
-rw-r--r-- 1 501 dialout 0 Jan 20 00:51 a
-rw-r--r-- 1 501 dialout 0 Jan 20 00:51 foo
Run Code Online (Sandbox Code Playgroud)
我尝试设置uid并gid根据以下的Vagrant文档Vagrantfile:
config.nfs.map_uid = 1001
config.nfs.map_gid = 1001
Run Code Online (Sandbox Code Playgroud)
我希望在访客中使用正确的用户/组,但它仍在使用501和dialout.
有任何想法吗?
我试图有条件地运行vagrant-berkshelf插件.默认情况下,vagrant up即使当前的流浪者操作不是配置运行,启用插件也会导致Berkshelf在每一个上解析和供应烹饪书(这是一个相对昂贵的操作).例如,我希望Berkshelf在我运行时运行:
vagrant up 第一次,或 vagrant reload --provision.来源暗示应该有一种方法来查询Vagrant本身以确定它是否是供应运行.具体来说,应该有一种方法可以挂钩@env[:provision_enabled]或者vagrant.actions.vm.provision,但我无法弄清楚如何在Vagrantfile本身内执行此操作.
这个方法实际上是绑定到Vagrant对象吗?如果没有,那么在哪里?我怎么能反省呢?
作为一种解决方法,我尝试在Chef块中移动Berkshelf插件,意图它只在Chef配置器执行时运行.例如:
Vagrant.configure(2) do |config|
config.berkshelf.enabled = false
config.vm.provision :chef_solo do |chef|
config.berkshelf.enabled = true
end
end
Run Code Online (Sandbox Code Playgroud)
然而,Berkshelf仍然运行每次我vagrant up还是vagrant reload,这是不期望的行为.每次运行时,烹饪书仍然可以解决和销售.考虑以下省略的输出:
==>默认:更新Vagrant的Berkshelf ...
==>默认:解决cookbook依赖...
==>默认:使用karaf(0.2.1)
==>默认:将karaf(0.2.1)提供给/ Users /富/ .berkshelf /游民,berkshelf /货架/ berkshelf20160215-19428-unzcx1默认/ karaf
有一个模糊的相关问题,其中接受的答案是一个丑陋的黑客,它寻找.vagrant/machines/default/virtualbox/action_provision或类似的存在,但它不是这个问题的完全重复,因为它没有解决如何以编程方式通过运行时对象或API Vagrant公开查询Vagrant的内部状态.它可能包含基于文件系统信号量的实用(如果是kludgey)答案,但它没有回答我实际问的问题.
可以打开端口,网络文件,并且有插件允许在Vagrant的配置过程中运行guest或host [shell]命令.
我想做的是能够(可能通过bash别名)在Vagrant guest虚拟机/ VM中运行命令,并在主机上执行命令,理想情况是在命令行上传递变量.
示例:在我的主机中,我运行Atom编辑器(同样适用于TextMate,无论如何).如果我想处理VM中的共享文件,我必须在主机中手动打开该文件,方法是直接在编辑器中打开它,或者运行'atom filename'shell命令.
我想要奇偶校验,所以在VM内部,我可以运行'atom filename',这会将文件名传递给VM外部的'atom $ 1'脚本,在主机中,并在我的主机编辑器(Atom)中打开它.
注意:我们使用Salt进行流动供应,使用NFS进行安装,以获得它的价值.当然,ssh与关键.
奖金问题:使用.gitconfig作为其合并冲突编辑器(如果前者可行,应该正常工作,对吗?).
找不到功能'nfs_mount'.这是用户永远不会看到的内部错误.请报告错误.
Cmd
C:\var\www\cc-dev-env>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/trusty64' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine …Run Code Online (Sandbox Code Playgroud) 我使用Vagrant来启动我的测试环境.可悲的是,我必须在旋转我的Vagrant盒子之前检索信息(密码).到目前为止,我使用Vagrant-Triggers来执行此操作并具有多个run "do something"命令.
IS
[:up, :provision].each do |cmd|
config.trigger.before cmd, stdout: true do
run "rm -rf #{cookbooks_path}"
run "mkdir -p #{cookbooks_path}"
run "touch fileX"
run "touch fileY"
run "touch fileZ"
end
end
Run Code Online (Sandbox Code Playgroud)
如何将所有命令移动到一个批处理文件中,然后我只包含该文件?
应该
[:up, :provision].each do |cmd|
config.trigger.before cmd, stdout: true do
include_script "Vagrant_trigger_before.sh"
end
end
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
当我通过 vagrant 创建虚拟机,并通过 ssh 进入机器时,“/vagrant”文件夹不存在。
请注意,机器启动时没有提及“安装共享文件夹”。 Vagrantfile 是从“vagrant init”创建的标准文件。
任何有关为什么会发生这种情况的帮助将不胜感激。谢谢。
我正在使用无业游民开发angular4应用程序。我已经安装了vagrant-fsnotify插件,以便通知文件系统更改以触发热构建。我的问题是vagrant fsnotify流浪汉启动后如何自动运行?
我在VirtualBox上使用Vagrant。昨天,我通过运行以下命令保存了项目的快照:
$ vagrant snapshot save 'my-project-date-time'
Run Code Online (Sandbox Code Playgroud)
今天,我对要还原的项目中的文件和文件夹进行了一些更改。当我跑步时:
$ vagrant snapshot restore 'my-project-date-time'
Run Code Online (Sandbox Code Playgroud)
...还原过程已成功完成,但是我项目中已更改的文件和文件夹保持不变,并且不会恢复到昨天拍摄快照时的状态。
那么,Vagrant快照到底能保存什么呢?
我有两台机器(linux,Mac),需要使用vagrant来管理虚拟机。VirtualBox 用于Liux,而parallels 用于Mac。所以我在 vagrant 配置文件中配置了这两个提供程序,如下所示:
Vagrant.configure('2') do |config|
config.ssh.forward_agent = true
config.ssh.password = 'crunch'
config.vm.box = 'ubuntu/xenial64'
config.vm.provider 'virtualbox' do |vb|
vb.gui = true
vb.memory = '8192'
vb.name = 'ubuntu'
end
config.vm.provider 'parallels' do |vb|
vb.gui = true
vb.memory = '8192'
vb.name = 'ubuntu'
config.vm.box = 'parallels/ubuntu-14.04'
end
Run Code Online (Sandbox Code Playgroud)
在我的 mac 系统上,当我运行以下命令但收到错误时:
$ vagrant up --provider parallels
An active machine was found with a different provider. Vagrant
currently allows each machine to be brought up with only a single
provider at …Run Code Online (Sandbox Code Playgroud) 我在amazon EC2 linux实例上安装了vagrant 1.7.2.当我试图通过发出这个vagrant插件安装vagrant-aws命令来安装vagrant aws插件时,我收到以下错误,
Installing the 'vagrant-aws' plugin. This can take a few minutes...
Bundler, the underlying system Vagrant uses to install plugins,
reported an error. The error is shown below. These errors are usually
caused by misconfigured plugin installations or transient network
issues. The error from Bundler is:
An error occurred while installing ffi (1.9.8), and Bundler cannot continue.
Make sure that `gem install ffi -v '1.9.8'` succeeds before bundling.
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem …Run Code Online (Sandbox Code Playgroud) 我的系统上有许多测试 vagrant 盒子,我正在整理它们。我安装了插件,例如 likevagrant plugin install vagrant-hostsupdater和vagrant plugin install vagrant-triggers. 当我做vagrant destroy做时,看起来在进行销毁或不销毁时摆脱插件。这样做后我将删除目录,vagrant destroy如果没有,那么既然目录已被删除,我该如何卸载插件。
vagrant ×13
vagrant-plugin ×13
virtualbox ×3
bash ×2
vagrantfile ×2
amazon-ec2 ×1
atom-editor ×1
berkshelf ×1
chef-solo ×1
nfs ×1
rhel ×1
ruby ×1
shell ×1
snapshot ×1