Merged in oherrala/puppet (pull request #19)

This commit is contained in:
Timo Mäkinen 2012-11-22 13:55:53 +02:00
commit b87e13140e
3 changed files with 113 additions and 0 deletions

View file

@ -567,3 +567,96 @@ class network::manager::disable {
}
}
# Define IPv6 prefixes for advertisement
#
# === Sample usage
#
# network::routeradvertisement::ipv6prefix { "em1":
# prefix => "2001:db8:c0de:cafe::/64"
# }
define network::routeradvertisement::ipv6prefix($prefix = "", $description = "") {
case $::operatingsystem {
"centos","redhat": {
file { "/etc/radvd.conf.d":
ensure => directory,
}
file { "/etc/radvd.conf.d/radvd-${name}.conf":
ensure => present,
mode => "0644",
owner => "root",
group => "root",
content => template("network/radvd.conf.erb"),
require => File["/etc/radvd.conf.d"],
notify => Exec["generate-radvd-conf"],
}
}
"openbsd": {
file { "/etc/rtadvd.conf.d":
ensure => directory,
}
file { "/etc/rtadvd.conf.d/rtadvd-${name}.conf":
ensure => present,
mode => "0644",
owner => "root",
group => "wheel",
content => template("network/rtadvd.conf.erb"),
before => Service["rtadvd-${name}"],
notify => Service["rtadvd-${name}"],
}
service { "rtadvd-${name}":
ensure => running,
enable => true,
start => "/usr/sbin/rtadvd -c /etc/rtadvd.conf.d/rtadvd-${name}.conf ${name}",
stop => "/usr/bin/pkill -f \"^/usr/sbin/rtadvd -c [^ ]+ ${name}\$\"",
status => "/usr/bin/pgrep -f \"^/usr/sbin/rtadvd -c [^ ]+ ${name}\$\"",
}
}
default: {
fail("Router advertisement not supported in $::operatingsystem.")
}
}
}
# Router Advertisement daemon
#
class network::routeradvertisement {
case $::operatingsystem {
"centos","redhat": {
package { "radvd":
ensure => installed,
}
service { "radvd":
ensure => running,
enable => true,
hasstatus => true,
require => [File["/etc/radvd.conf"], Package["radvd"]],
}
file { "/etc/radvd.conf":
ensure => present,
mode => "0644",
owner => "root",
group => "root",
require => Exec["generate-radvd-conf"],
notify => Service["radvd"],
}
exec { "generate-radvd-conf":
command => "/bin/cat /etc/radvd.conf.d/radvd-*.conf >/etc/radvd.conf",
path => "/bin:/usr/bin:/sbin:/usr/sbin",
refreshonly => true,
}
}
"openbsd": {
# Only network::ipv6network is needed for OpenBSD
}
default: {
fail("Router advertisement not supported in $::operatingsystem")
}
}
}

View file

@ -0,0 +1,16 @@
# <%= description %>
interface <%= name %>
{
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
AdvHomeAgentFlag off;
prefix <%= prefix %>
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};
};

View file

@ -0,0 +1,4 @@
# <%= description %>
<%= name %>:\
:addr="<%= prefix.split("/").first %>":":prefixlen#<%= prefix.split("/").last %>: