Puppet module to manage /etc/network/interfaces

@Andreas Jaggi Andreas Jaggi authored on 19 Apr 2013
root committed on 19 Apr 2013
manifests Add $allow_hotplug shortcut to interfaces::iface 11 years ago
spec Add $allow_hotplug shortcut to interfaces::iface 11 years ago
.travis.yml Also test rvm 1.9.3 11 years ago
Gemfile Fix gemfile 11 years ago
LICENSE Initial import 11 years ago
Modulefile Initial import 11 years ago
README.markdown Add $allow_hotplug shortcut to interfaces::iface 11 years ago
Rakefile Add initial rspec-puppet test infrastructure 11 years ago
README.markdown

What is it?

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

Build 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.