Puppet module to manage /etc/network/interfaces

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