Skip to content

A Vagrant plugin to ensure an available TUN/TAP virtual networking interface after provisioning

License

Notifications You must be signed in to change notification settings

vdloo/vagrant-tun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vagrant-tun

Purpose

This Vagrant plugin makes sure that there is a TUN/TAP device in a usable state.

There are a couple of reasons why /dev/net/tun could be unavailable after provisioning. One of them is that it could be that the base image you are using does not have the tun module loaded by default. Another is that updating and upgrading the machine during the provisioning stage has installed a new kernel and requires a reboot for the tun module to be successfully loaded. This plugin tries to automate all of that.

  1. Check if the TUN adapter exists and is in a usable state

  2. If not, create it with mkdir -p /dev/net && mknod /dev/net/tun c 10 200 && chmod 0666 /dev/net/tun

  3. If it still is not in a usable state, try to load the tun module into the kernel and check again

  4. If it is still not in a usable state, reboot the machine and check again

Usage

Install the plugin from rubygems

$ vagrant plugin install vagrant-tun

Enable the plugin in your Vagrantfile

Vagrant.configure('2') do |config|
        config.tun.enabled = true

Development

Install the build deps

sudo gem install bundler rake rspec simplecov

Run the tests

$ make test

Create the gemfile (package)

$ make
rake build
vagrant-tun 0.0.3 built to pkg/vagrant-tun-0.0.3.gem.

Install the built gemfile

$ make install
find pkg/ -name '*.gem' | head -n 1 | xargs vagrant plugin install
Installing the 'pkg/vagrant-tun-0.0.3.gem' plugin. This can take a few minutes...
Installed the plugin 'vagrant-tun (0.0.3)'!

About

A Vagrant plugin to ensure an available TUN/TAP virtual networking interface after provisioning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published