Netbeans 重新启动主机后,流浪机消失
这个标题很好地解释了这个问题。我通过从netbeans插件安装的vagrant up安装我的vagrant机器。我对它进行了配置并适当地使用它。然后我停止机器,关闭主机,当我启动主机时,流浪者的机器消失了。没有配置文件,没有机器本身。没有找到关于这个问题的任何文档,我需要这个流浪者机器,所以我每天安装一个新的,这样我就可以适当地调试我的工作项目。我不知道该做什么,也不知道该尝试什么,因为我在一份新工作中只使用了几个星期的vagrant,但我在每天的安装上浪费了很多时间,我需要解决这个问题。谢谢你的帮助。 有什么想法吗 流浪汉档案:Netbeans 重新启动主机后,流浪机消失,netbeans,vagrant,virtualbox,Netbeans,Vagrant,Virtualbox,这个标题很好地解释了这个问题。我通过从netbeans插件安装的vagrant up安装我的vagrant机器。我对它进行了配置并适当地使用它。然后我停止机器,关闭主机,当我启动主机时,流浪者的机器消失了。没有配置文件,没有机器本身。没有找到关于这个问题的任何文档,我需要这个流浪者机器,所以我每天安装一个新的,这样我就可以适当地调试我的工作项目。我不知道该做什么,也不知道该尝试什么,因为我在一份新工作中只使用了几个星期的vagrant,但我在每天的安装上浪费了很多时间,我需要解决这个问题。谢谢你
require 'yaml'
dir = File.dirname(File.expand_path(__FILE__))
configValues = YAML.load_file("#{dir}/puphpet/config.yaml")
data = configValues['vagrantfile-local']
Vagrant.require_version '>= 1.6.0'
Vagrant.configure('2') do |config|
config.vm.box = "#{data['vm']['box']}"
config.vm.box_url = "#{data['vm']['box_url']}"
if data['vm']['hostname'].to_s.strip.length != 0
config.vm.hostname = "#{data['vm']['hostname']}"
end
if data['vm']['network']['private_network'].to_s != ''
config.vm.network 'private_network', ip: "#{data['vm']['network']['private_network']}"
end
data['vm']['network']['forwarded_port'].each do |i, port|
if port['guest'] != '' && port['host'] != ''
config.vm.network :forwarded_port, guest: port['guest'].to_i, host: port['host'].to_i
end
end
if !data['vm']['post_up_message'].nil?
config.vm.post_up_message = "#{data['vm']['post_up_message']}"
end
if Vagrant.has_plugin?('vagrant-hostmanager')
hosts = Array.new()
if !configValues['apache']['install'].nil? &&
configValues['apache']['install'].to_i == 1 &&
configValues['apache']['vhosts'].is_a?(Hash)
configValues['apache']['vhosts'].each do |i, vhost|
hosts.push(vhost['servername'])
if vhost['serveraliases'].is_a?(Array)
vhost['serveraliases'].each do |vhost_alias|
hosts.push(vhost_alias)
end
end
end
elsif !configValues['nginx']['install'].nil? &&
configValues['nginx']['install'].to_i == 1 &&
configValues['nginx']['vhosts'].is_a?(Hash)
configValues['nginx']['vhosts'].each do |i, vhost|
hosts.push(vhost['server_name'])
if vhost['server_aliases'].is_a?(Array)
vhost['server_aliases'].each do |x, vhost_alias|
hosts.push(vhost_alias)
end
end
end
end
if hosts.any?
contents = File.open("#{dir}/puphpet/shell/ascii-art/hostmanager-notice.txt", 'r'){ |file| file.read }
puts "\n\033[32m#{contents}\033[0m\n"
if config.vm.hostname.to_s.strip.length == 0
config.vm.hostname = 'puphpet-dev-machine'
end
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
config.hostmanager.ignore_private_ip = false
config.hostmanager.include_offline = false
config.hostmanager.aliases = hosts
end
end
if Vagrant.has_plugin?('vagrant-cachier')
config.cache.scope = :box
end
data['vm']['synced_folder'].each do |i, folder|
if folder['source'] != '' && folder['target'] != ''
if folder['sync_type'] == 'nfs'
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: 'nfs'
config.vm.network "private_network", type: "dhcp"
elsif folder['sync_type'] == 'smb'
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: 'smb'
elsif folder['sync_type'] == 'rsync'
rsync_args = !folder['rsync']['args'].nil? ? folder['rsync']['args'] : ['--verbose', '--archive', '-z']
rsync_auto = !folder['rsync']['auto'].nil? ? folder['rsync']['auto'] : true
rsync_exclude = !folder['rsync']['exclude'].nil? ? folder['rsync']['exclude'] : ['.vagrant/']
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
rsync__args: rsync_args, rsync__exclude: rsync_exclude, rsync__auto: rsync_auto, type: 'rsync'
else
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}",
group: 'www-data', owner: 'www-data', mount_options: ['dmode=777', 'fmode=777']
end
end
end
config.vm.usable_port_range = (data['vm']['usable_port_range']['start'].to_i..data['vm']['usable_port_range']['stop'].to_i)
if data['vm']['chosen_provider'].empty? || data['vm']['chosen_provider'] == 'virtualbox'
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox'
config.vm.provider :virtualbox do |virtualbox|
data['vm']['provider']['virtualbox']['modifyvm'].each do |key, value|
if key == 'memory'
next
end
if key == 'cpus'
next
end
if key == 'natdnshostresolver1'
value = value ? 'on' : 'off'
end
virtualbox.customize ['modifyvm', :id, "--#{key}", "#{value}"]
end
virtualbox.customize ['modifyvm', :id, '--memory', "#{data['vm']['memory']}"]
virtualbox.customize ['modifyvm', :id, '--cpus', "#{data['vm']['cpus']}"]
if data['vm']['hostname'].to_s.strip.length != 0
virtualbox.customize ['modifyvm', :id, '--name', config.vm.hostname]
end
end
end
if data['vm']['chosen_provider'] == 'vmware_fusion' || data['vm']['chosen_provider'] == 'vmware_workstation'
ENV['VAGRANT_DEFAULT_PROVIDER'] = (data['vm']['chosen_provider'] == 'vmware_fusion') ? 'vmware_fusion' : 'vmware_workstation'
config.vm.provider 'vmware_fusion' do |v|
data['vm']['provider']['vmware'].each do |key, value|
if key == 'memsize'
next
end
if key == 'cpus'
next
end
v.vmx["#{key}"] = "#{value}"
end
v.vmx['memsize'] = "#{data['vm']['memory']}"
v.vmx['numvcpus'] = "#{data['vm']['cpus']}"
if data['vm']['hostname'].to_s.strip.length != 0
v.vmx['displayName'] = config.vm.hostname
end
end
end
if data['vm']['chosen_provider'] == 'parallels'
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'parallels'
config.vm.provider 'parallels' do |v|
data['vm']['provider']['parallels'].each do |key, value|
if key == 'memsize'
next
end
if key == 'cpus'
next
end
v.customize ['set', :id, "--#{key}", "#{value}"]
end
v.memory = "#{data['vm']['memory']}"
v.cpus = "#{data['vm']['cpus']}"
if data['vm']['hostname'].to_s.strip.length != 0
v.name = config.vm.hostname
end
end
end
ssh_username = !data['ssh']['username'].nil? ? data['ssh']['username'] : 'vagrant'
config.vm.provision 'shell' do |s|
s.path = 'puphpet/shell/initial-setup.sh'
s.args = '/vagrant/puphpet'
end
config.vm.provision 'shell' do |kg|
kg.path = 'puphpet/shell/ssh-keygen.sh'
kg.args = "#{ssh_username}"
end
config.vm.provision :shell, :path => 'puphpet/shell/install-ruby.sh'
config.vm.provision :shell, :path => 'puphpet/shell/install-puppet.sh'
config.vm.provision :puppet do |puppet|
puppet.facter = {
'ssh_username' => "#{ssh_username}",
'provisioner_type' => ENV['VAGRANT_DEFAULT_PROVIDER'],
'vm_target_key' => 'vagrantfile-local',
}
puppet.manifests_path = "#{data['vm']['provision']['puppet']['manifests_path']}"
puppet.manifest_file = "#{data['vm']['provision']['puppet']['manifest_file']}"
puppet.module_path = "#{data['vm']['provision']['puppet']['module_path']}"
if !data['vm']['provision']['puppet']['options'].empty?
puppet.options = data['vm']['provision']['puppet']['options']
end
end
config.vm.provision :shell do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['exec-once', 'exec-always']
end
config.vm.provision :shell, run: 'always' do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['startup-once', 'startup-always']
end
config.vm.provision :shell, :path => 'puphpet/shell/important-notices.sh'
if File.file?("#{dir}/puphpet/files/dot/ssh/id_rsa")
config.ssh.private_key_path = [
"#{dir}/puphpet/files/dot/ssh/id_rsa",
"#{dir}/puphpet/files/dot/ssh/insecure_private_key"
]
end
if !data['ssh']['host'].nil?
config.ssh.host = "#{data['ssh']['host']}"
end
if !data['ssh']['port'].nil?
config.ssh.port = "#{data['ssh']['port']}"
end
if !data['ssh']['username'].nil?
config.ssh.username = "#{data['ssh']['username']}"
end
if !data['ssh']['guest_port'].nil?
config.ssh.guest_port = data['ssh']['guest_port']
end
if !data['ssh']['shell'].nil?
config.ssh.shell = "#{data['ssh']['shell']}"
end
if !data['ssh']['keep_alive'].nil?
config.ssh.keep_alive = data['ssh']['keep_alive']
end
if !data['ssh']['forward_agent'].nil?
config.ssh.forward_agent = data['ssh']['forward_agent']
end
if !data['ssh']['forward_x11'].nil?
config.ssh.forward_x11 = data['ssh']['forward_x11']
end
if !data['vagrant']['host'].nil?
config.vagrant.host = data['vagrant']['host'].gsub(':', '').intern
end
end
作为一个临时解决方案,我从现在开始将所有vm文件保存到其他文件夹中,这样我就只能恢复,不需要再次安装,但是,这是一个蹩脚的解决方案,我希望适当地这样做。这个问题的质量很低,如果我们不能完全描述您遇到的问题以及该问题的解决方案,我建议关闭它。请记住,您可以提交自己问题的答案。这样,遇到此问题的其他人将了解您是如何解决此问题的。通常,您可以通过搜索“debugging X”(例如Google->“debugging vagrant”)发现很多信息 除此之外,在VM启动时查看机器控制台(GUI)可能对您有用。因为您使用的是Virtualbox,所以这非常简单。在以
config.vm.provider:virtualbox do | virtualbox |
开头的文件部分,添加以下内容:
virtualbox.gui = true
这是一种常见的方法,如文档中所述:此问题的质量较低,如果我们无法完全描述您遇到的问题以及该问题的解决方案,我建议关闭此问题。请记住,您可以提交自己问题的答案。这样,遇到此问题的其他人将了解您是如何解决此问题的。通常,您可以通过搜索“debugging X”(例如Google->“debugging vagrant”)发现很多信息 除此之外,在VM启动时查看机器控制台(GUI)可能对您有用。因为您使用的是Virtualbox,所以这非常简单。在以
config.vm.provider:virtualbox do | virtualbox |
开头的文件部分,添加以下内容:
virtualbox.gui = true
这是一种常见的方法,如文档所述:要解决这个问题,我只需停止从netbeans启动vagrant,并从cygwin开始使用它。这样它就不会消失。仍然不知道如果我从netbeans启动它,它为什么会删除机器,但我需要在工作中使用它,所以我必须这样做,然后继续。感谢大家的回答和花费的时间。为了解决这个问题,我停止从netbeans启动vagrant,从cygwin开始使用它。这样它就不会消失。仍然不知道如果我从netbeans启动它,它为什么会删除机器,但我需要在工作中使用它,所以我必须这样做,然后继续。感谢大家的回答和花费的时间。您使用的是linux系统吗?如果是这样的话,请张贴您的:ls~/.vagrant.d/box,如果您使用Windowd 7主机发布您的VagrantfileIm,也会很好,我用我的Vagrantfile更新了我的问题(这是由一位不再在这里工作的前同事设置的):谢谢您的快速回答!我建议您使用cmd.exe自行安装机器。在打开VirtualBox或您正在使用的提供商并检查VM的位置之后,这可以帮助我们解决问题:)。并发布此文件内容:data=configValues['vagrantfile-local']vagrantfile localI尝试使用cmd和cygwin设置vagrant,我也遇到了同样的问题。虚拟机的文件位置已正确设置,但在重新启动后为空(虚拟机路径和配置文件路径)。可能不是这样,但您可以在异常停止后检查您的机器是否仍然存在吗?也许有人在你使用linux系统运行haltAre时制造了一个别名来破坏你?如果是这样的话,请张贴您的:ls~/.vagrant.d/box,如果您使用Windowd 7主机发布您的VagrantfileIm,也会很好,我用我的Vagrantfile更新了我的问题(这是由一位不再在这里工作的前同事设置的):谢谢您的快速回答!我建议您使用cmd.exe自行安装机器。在打开VirtualBox或您正在使用的提供商并检查VM的位置之后,这可以帮助我们解决问题:)。并发布此文件内容:data=configValues['vagrantfile-local']vagrantfile localI尝试使用cmd和cygwin设置vagrant,我也遇到了同样的问题。虚拟机的文件位置已正确设置,但在重新启动后为空(虚拟机路径和配置文件路径)。可能不是这样,但您可以在异常停止后检查您的机器是否仍然存在吗?当你运行haltthanks进行解释时,可能有人用化名来破坏。下面的问题我会记住的。谢谢你的解释。接下来的问题我会记在心里的。