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