diff --git a/lib/vagrant/systems/arch.rb b/lib/vagrant/systems/arch.rb index 48c0caf62..720f31f7a 100644 --- a/lib/vagrant/systems/arch.rb +++ b/lib/vagrant/systems/arch.rb @@ -11,6 +11,24 @@ module Vagrant end end end + + def prepare_host_only_network(net_options=nil) + vm.ssh.execute do |ssh| + ssh.exec!("sudo sed -e '/^#VAGRANT-BEGIN/,/^#VAGRANT-END/ d' /etc/rc.conf > /tmp/vagrant-network-interfaces") + ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-interfaces > /etc/rc.conf'") + end + end + + def enable_host_only_network(net_options) + entry = TemplateRenderer.render('network_entry_arch', :net_options => net_options) + vm.ssh.upload!(StringIO.new(entry), "/tmp/vagrant-network-entry") + + vm.ssh.execute do |ssh| + ssh.exec!("sudo su -c 'cat /tmp/vagrant-network-entry >> /etc/rc.conf'") + ssh.exec!("sudo /etc/rc.d/network restart") + ssh.exec!("sudo su -c 'dhcpcd -k eth0 && dhcpcd eth0 & sleep 3'") + end + end end end end diff --git a/templates/network_entry_arch.erb b/templates/network_entry_arch.erb new file mode 100644 index 000000000..b40211749 --- /dev/null +++ b/templates/network_entry_arch.erb @@ -0,0 +1,9 @@ + +#VAGRANT-BEGIN +# The contents below are automatically generated by Vagrant. +# Please do not modify any of these contents. +interface=eth<%= net_options[:adapter] %> +address=<%= net_options[:ip]%> +netmask=<%= net_options[:netmask] %> +gateway= +#VAGRANT-END