Vagrant 创建虚拟化开发环境
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
这篇文章是为大家讲解的是vagrant扩展public_network让vagrant可以自定义静态ip
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
其实解决方法也不是没有,只是要修改vagrant的源代码,加一些扩展代码上去
好吧,在那里加扩展代码呢?
我的操作系统ubuntu,大家可能有在window下面安装的。。都不管了。。。
1.找到我们的vagrant安装目录:我的安装目录是
/opt/vagrant/
2.然后修改以下路径的配置文件,注意哦,以下路径是我本机的安装路径
/opt/vagrant/embedded/gems/gems/vagrant-1.2.4/plugins/providers/virtualbox/action/network.rb
找到这个方法 def bridged_network_config(config) 这是一个ruby的方法定义,修改这个方法,添加扩展代码
修改前:
def bridged_network_config(config)
return {
:type => :dhcp,
:use_dhcp_assigned_default_route => config[:use_dhcp_assigned_default_route]
}
end
修改后:
def bridged_network_config(config)
if config[:ip]
options = {
:auto_config => true,
:mac => nil,
:netmask => "255.255.255.0",
:type => :static
}.merge(config)
options[:type] = options[:type].to_sym
return options
end
return {
:type => :dhcp,
:use_dhcp_assigned_default_route => config[:use_dhcp_assigned_default_route]
}
end
好了,这样就修改成功了。。
看回Vagrantfile这份文件:
我们应该怎么使用呢?添加了扩展代码,我想大家都知道开启public_network是怎么写配置文件,下面我写出添加了扩展代码自定义ip的配置文件写法,也非常简单,具体代码
config.vm.network :public_network,ip:"192.168.9.111"
修改完成后,不要忘记
vagrant reload