Puppet module to manage /etc/network/interfaces

Andreas Jaggi authored on 27 Jul 2014
manifests make default order according to Debian examples 4 years ago
spec Adapt allowed methods for inet6 family for Debian 7 4 years ago
.coveralls.yml use merged coveralls results pushing 4 years ago
.fixtures.yml Fix fixtures filename 5 years ago
.travis.yml use merged coveralls results pushing 4 years ago
Gemfile Adapt require syntax in Gemfile 4 years ago
LICENSE Initial import 6 years ago
Modulefile Initial import 6 years ago
README.markdown Add coveralls badge to readme 4 years ago
Rakefile add noop coveralls:push task for ruby 1.8.7 tests 4 years ago
README.markdown

What is it?

A Puppet module to manage /etc/network/interfaces.

Build Status Coverage Status

Usage:

Basic example which only configures the loopback interface:

include interfaces
interfaces::iface { 'lo': family => 'inet', method => 'loopback', auto => 1 }

Standard example with a regular Ethernet interface configured for DHCP:

include interfaces
interfaces::iface { 'eth0': family => 'inet', method => 'dhcp', auto => 1, allow_hotplug => 1 }

Network interface with static addressing and VLAN with DHCP configuration:

include interfaces
interfaces::iface { 'eth0': family => 'inet', method => 'static', options => ['address 192.0.2.1','netmask 255.255.255.0','gateway 192.0.2.2'], auto => 1, allow_hotplug => 1 }
interfaces::iface { 'eth0.123': family => 'inet', method => 'dhcp', options => ['vlan_raw_device eth0'], auto => 1 }

Static IPv6 address configuration:

include interfaces
interfaces::iface { 'eth0': family => 'inet6', method => 'static', options => ['address 2001:db8::1','netmask 64'], auto => 1, allow_hotplug => 1 }

Dualstack configuration:

include interfaces
interfaces::iface { 'eth0': family => 'inet', method => 'dhcp', auto => 1, allow_hotplug => 1 }
interfaces::iface { 'eth0v6': ifname => 'eth0', family => 'inet6', method => 'static', options => ['address 2001:db8::1','netmask 64'] }

Reference:

The puppet module directly implements the stanzas documented in interfaces(5).

interfaces::auto()
interfaces::allow($subsystem)
interfaces::mapping($script, $maps=[])
interfaces::iface($family, $method, $options=[], $ifname=$name, $auto=0, $allow_hotplug=0)

Currently the only shortcuts are the $auto parameter of interfaces::iface which when set to 1 directly produces an interfaces::auto entry for the interface and the $allow_hotplug parameter of interfaces::iface which when set to 1 directly produces an interfaces::allow hotplug subsystem entry for the interface.