(368) Added local network config code for Suse.
Networking in SUSE works almost exactly like redhat. The only difference is the location of the networking scripts. This has been verified as working on SLES11sp1, but requires a previously configured eth1 interface (as with redhat) I have also verified that I can still bring up a localnet on rhel 4,5
This commit is contained in:
parent
8bb2403ce0
commit
ad834feccc
|
@ -8,4 +8,5 @@ require 'vagrant/systems/solaris'
|
|||
require 'vagrant/systems/debian'
|
||||
require 'vagrant/systems/gentoo'
|
||||
require 'vagrant/systems/redhat'
|
||||
require 'vagrant/systems/suse'
|
||||
require 'vagrant/systems/ubuntu'
|
||||
|
|
|
@ -13,6 +13,7 @@ module Vagrant
|
|||
|
||||
return :gentoo if ssh.test?("cat /etc/gentoo-release")
|
||||
return :redhat if ssh.test?("cat /etc/redhat-release")
|
||||
return :suse if ssh.test?("cat /etc/SuSE-release")
|
||||
end
|
||||
|
||||
# Can't detect the distro, assume vanilla linux
|
||||
|
|
|
@ -6,9 +6,9 @@ module Vagrant
|
|||
# interface file.
|
||||
vm.ssh.execute do |ssh|
|
||||
# Clear out any previous entries
|
||||
ssh.exec!("sudo touch /etc/sysconfig/network-scripts/ifcfg-eth#{net_options[:adapter]}")
|
||||
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]}'")
|
||||
ssh.exec!("sudo touch #{network_scripts_dir}/ifcfg-eth#{net_options[:adapter]}")
|
||||
ssh.exec!("sudo sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' #{network_scripts_dir}/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]} > #{network_scripts_dir}/ifcfg-eth#{net_options[:adapter]}'")
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -20,11 +20,19 @@ module Vagrant
|
|||
vm.ssh.execute do |ssh|
|
||||
interface_up = ssh.test?("/sbin/ifconfig eth#{net_options[:adapter]} | grep 'inet addr:'")
|
||||
ssh.exec!("sudo /sbin/ifdown eth#{net_options[:adapter]} 2> /dev/null") if interface_up
|
||||
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> /etc/sysconfig/network-scripts/ifcfg-eth#{net_options[:adapter]}'")
|
||||
ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> #{network_scripts_dir}/ifcfg-eth#{net_options[:adapter]}'")
|
||||
ssh.exec!("sudo /sbin/ifup eth#{net_options[:adapter]}")
|
||||
end
|
||||
end
|
||||
|
||||
# The path to the directory with the network configuration scripts.
|
||||
# This is pulled out into its own directory since there are other
|
||||
# operationg systems (SuSE) which behave similarly but with a different
|
||||
# path to the network scripts.
|
||||
def network_scripts_dir
|
||||
'/etc/sysconfig/network-scripts/'
|
||||
end
|
||||
|
||||
def change_host_name(name)
|
||||
vm.ssh.execute do |ssh|
|
||||
# Only do this if the hostname is not already set
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
module Vagrant
|
||||
module Systems
|
||||
class Suse < Redhat
|
||||
def network_scripts_dir
|
||||
'/etc/sysconfig/network/'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -63,6 +63,7 @@ module Vagrant
|
|||
:freebsd => Systems::FreeBSD,
|
||||
:gentoo => Systems::Gentoo,
|
||||
:redhat => Systems::Redhat,
|
||||
:suse => Systems::Suse,
|
||||
:linux => Systems::Linux,
|
||||
:solaris => Systems::Solaris
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue