redhat distribution implemention for host only network
This commit is contained in:
parent
135de3f0ec
commit
d143fa965e
20
Gemfile.lock
20
Gemfile.lock
|
@ -1,8 +1,8 @@
|
||||||
GIT
|
GIT
|
||||||
remote: git://github.com/mitchellh/virtualbox.git
|
remote: git://github.com/mitchellh/virtualbox.git
|
||||||
revision: 041996145591d20acf3e04fef3d4709f826d878a
|
revision: c79de55b05dd5703fa157e9900efecaaf1da5861
|
||||||
specs:
|
specs:
|
||||||
virtualbox (0.7.6.dev)
|
virtualbox (0.7.8.dev)
|
||||||
ffi (~> 0.6.3)
|
ffi (~> 0.6.3)
|
||||||
|
|
||||||
PATH
|
PATH
|
||||||
|
@ -25,28 +25,28 @@ GEM
|
||||||
abstract (1.0.0)
|
abstract (1.0.0)
|
||||||
archive-tar-minitar (0.5.2)
|
archive-tar-minitar (0.5.2)
|
||||||
bluecloth (2.0.9)
|
bluecloth (2.0.9)
|
||||||
columnize (0.3.1)
|
columnize (0.3.2)
|
||||||
contest (0.1.2)
|
contest (0.1.2)
|
||||||
erubis (2.6.6)
|
erubis (2.6.6)
|
||||||
abstract (>= 1.0.0)
|
abstract (>= 1.0.0)
|
||||||
ffi (0.6.3)
|
ffi (0.6.3)
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
i18n (0.4.1)
|
i18n (0.4.2)
|
||||||
json (1.4.6)
|
json (1.4.6)
|
||||||
linecache (0.43)
|
linecache (0.43)
|
||||||
linecache19 (0.5.11)
|
linecache19 (0.5.11)
|
||||||
ruby_core_source (>= 0.1.4)
|
ruby_core_source (>= 0.1.4)
|
||||||
mario (0.0.6)
|
mario (0.0.6)
|
||||||
mocha (0.9.8)
|
mocha (0.9.10)
|
||||||
rake
|
rake
|
||||||
net-scp (1.0.4)
|
net-scp (1.0.4)
|
||||||
net-ssh (>= 1.99.1)
|
net-ssh (>= 1.99.1)
|
||||||
net-ssh (2.0.23)
|
net-ssh (2.0.23)
|
||||||
rake (0.8.7)
|
rake (0.8.7)
|
||||||
ruby-debug (0.10.3)
|
ruby-debug (0.10.4)
|
||||||
columnize (>= 0.1)
|
columnize (>= 0.1)
|
||||||
ruby-debug-base (~> 0.10.3.0)
|
ruby-debug-base (~> 0.10.4.0)
|
||||||
ruby-debug-base (0.10.3)
|
ruby-debug-base (0.10.4)
|
||||||
linecache (>= 0.3)
|
linecache (>= 0.3)
|
||||||
ruby-debug-base19 (0.11.24)
|
ruby-debug-base19 (0.11.24)
|
||||||
columnize (>= 0.3.1)
|
columnize (>= 0.3.1)
|
||||||
|
@ -58,8 +58,8 @@ GEM
|
||||||
ruby-debug-base19 (>= 0.11.19)
|
ruby-debug-base19 (>= 0.11.19)
|
||||||
ruby_core_source (0.1.4)
|
ruby_core_source (0.1.4)
|
||||||
archive-tar-minitar (>= 0.5.2)
|
archive-tar-minitar (>= 0.5.2)
|
||||||
thor (0.14.3)
|
thor (0.14.6)
|
||||||
yard (0.6.1)
|
yard (0.6.3)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
|
|
@ -21,8 +21,8 @@ module Vagrant
|
||||||
|
|
||||||
if enable_network?
|
if enable_network?
|
||||||
@env.ui.info I18n.t("vagrant.actions.vm.network.enabling")
|
@env.ui.info I18n.t("vagrant.actions.vm.network.enabling")
|
||||||
@env["vm"].system.prepare_host_only_network
|
|
||||||
@env.env.config.vm.network_options.compact.each do |network_options|
|
@env.env.config.vm.network_options.compact.each do |network_options|
|
||||||
|
@env["vm"].system.prepare_host_only_network(network_options)
|
||||||
@env["vm"].system.enable_host_only_network(network_options)
|
@env["vm"].system.enable_host_only_network(network_options)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -62,27 +62,39 @@ module Vagrant
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def prepare_host_only_network
|
def prepare_host_only_network(net_options)
|
||||||
# Remove any previous host only network additions to the
|
# Remove any previous host only network additions to the
|
||||||
# interface file.
|
# interface file.
|
||||||
vm.ssh.execute do |ssh|
|
vm.ssh.execute do |ssh|
|
||||||
# Verify debian/ubuntu
|
case distribution(ssh)
|
||||||
ssh.exec!("cat /etc/debian_version", :error_class => LinuxError, :_key => :network_not_debian)
|
when :debian
|
||||||
|
|
||||||
# Clear out any previous entries
|
# Clear out any previous entries
|
||||||
ssh.exec!("sudo sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' /etc/network/interfaces > /tmp/vagrant-network-interfaces")
|
ssh.exec!("sudo sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' /etc/network/interfaces > /tmp/vagrant-network-interfaces")
|
||||||
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-interfaces > /etc/network/interfaces'")
|
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-interfaces > /etc/network/interfaces'")
|
||||||
|
when :redhat
|
||||||
|
ssh.exec!("sudo sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' /etc/sysconfig/network-scripts/ifcfg-eth#{net_options[:adapter]} > /tmp/vagrant-ifcfg-eth#{net_options[:adapter]}")
|
||||||
|
ssh.exec!("sudo su -c 'cat /tmp/vagrant-ifcfg-eth#{net_options[:adapter]} > /etc/sysconfig/network-scripts/ifcfg-eth#{net_options[:adapter]}'")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def enable_host_only_network(net_options)
|
def enable_host_only_network(net_options)
|
||||||
entry = TemplateRenderer.render('network_entry', :net_options => net_options)
|
|
||||||
vm.ssh.upload!(StringIO.new(entry), "/tmp/vagrant-network-entry")
|
|
||||||
|
|
||||||
vm.ssh.execute do |ssh|
|
vm.ssh.execute do |ssh|
|
||||||
|
case distribution(ssh)
|
||||||
|
when :debian
|
||||||
|
entry = TemplateRenderer.render('debian_network_entry', :net_options => net_options)
|
||||||
|
vm.ssh.upload!(StringIO.new(entry), "/tmp/vagrant-network-entry")
|
||||||
ssh.exec!("sudo /sbin/ifdown eth#{net_options[:adapter]} 2> /dev/null")
|
ssh.exec!("sudo /sbin/ifdown eth#{net_options[:adapter]} 2> /dev/null")
|
||||||
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> /etc/network/interfaces'")
|
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> /etc/network/interfaces'")
|
||||||
ssh.exec!("sudo /sbin/ifup eth#{net_options[:adapter]}")
|
ssh.exec!("sudo /sbin/ifup eth#{net_options[:adapter]}")
|
||||||
|
|
||||||
|
when :redhat
|
||||||
|
entry = TemplateRenderer.render('redhat_network_entry', :net_options => net_options)
|
||||||
|
vm.ssh.upload!(StringIO.new(entry), "/tmp/vagrant-network-entry")
|
||||||
|
ssh.exec!("sudo /sbin/ifdown eth#{net_options[:adapter]} 2> /dev/null")
|
||||||
|
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> /etc/sysconfig/network-scripts/ifcfg-eth#{net_options[:adapter]}'")
|
||||||
|
ssh.exec!("sudo /sbin/ifup eth#{net_options[:adapter]}")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -110,6 +122,30 @@ module Vagrant
|
||||||
sleep sleeptime
|
sleep sleeptime
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def debian?(ssh)
|
||||||
|
ssh.exec!("test -e /etc/debian_version") do |ch, type, data|
|
||||||
|
return true if type == :exit_status && data == 0
|
||||||
|
end
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
|
def redhat?(ssh)
|
||||||
|
ssh.exec!("test -e /etc/redhat-release ") do |ch, type, data|
|
||||||
|
return true if type == :exit_status && data == 0
|
||||||
|
end
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
|
def distribution(ssh)
|
||||||
|
if debian?(ssh)
|
||||||
|
:debian
|
||||||
|
elsif redhat?(ssh)
|
||||||
|
:redhat
|
||||||
|
else
|
||||||
|
raise LinuxError.new(:distribution_not_supported)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class Linux < Base
|
class Linux < Base
|
||||||
|
|
Binary file not shown.
|
@ -433,8 +433,8 @@ en:
|
||||||
linux:
|
linux:
|
||||||
attempting_halt: "Attempting graceful shutdown of linux..."
|
attempting_halt: "Attempting graceful shutdown of linux..."
|
||||||
mount_fail: "Failed to mount shared folders. `vboxsf` was not available."
|
mount_fail: "Failed to mount shared folders. `vboxsf` was not available."
|
||||||
network_not_debian: |-
|
distribution_not_supported: |-
|
||||||
Host only networking is only supported for Debian/Ubuntu by the built-in
|
Host only networking is only supported for Debian/Ubuntu and Redhat Distributions by the built-in
|
||||||
"Linux" system. If you're using some other distro and want to implement
|
"Linux" system. If you're using some other distro and want to implement
|
||||||
host only networking, please subclass the `Vagrant::Systems::Linux` class
|
host only networking, please subclass the `Vagrant::Systems::Linux` class
|
||||||
and implement the `prepare_host_only_network` and `enable_host_only_network`
|
and implement the `prepare_host_only_network` and `enable_host_only_network`
|
||||||
|
@ -443,5 +443,6 @@ en:
|
||||||
Otherwise, please report your distro and how to modify network interfaces
|
Otherwise, please report your distro and how to modify network interfaces
|
||||||
to the Vagrant mailing list or IRC and we'll probably be glad to add it
|
to the Vagrant mailing list or IRC and we'll probably be glad to add it
|
||||||
to the internal systems.
|
to the internal systems.
|
||||||
|
|
||||||
solaris:
|
solaris:
|
||||||
attempting_halt: "Attempting graceful shutdown of solaris..."
|
attempting_halt: "Attempting graceful shutdown of solaris..."
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
#VAGRANT-BEGIN
|
||||||
|
# The contents below are automatically generated by Vagrant.
|
||||||
|
# Please do not modify any of these contents.
|
||||||
|
BOOTPROTO=static
|
||||||
|
DHCPCLASS=
|
||||||
|
IPADDR=<%= net_options[:ip] %>
|
||||||
|
NETMASK=<%= net_options[:netmask] %>
|
||||||
|
#VAGRANT-END
|
Loading…
Reference in New Issue