Merged in oherrala/puppet (pull request #19)
This commit is contained in:
commit
b87e13140e
3 changed files with 113 additions and 0 deletions
|
@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
16
network/templates/radvd.conf.erb
Normal file
16
network/templates/radvd.conf.erb
Normal file
|
@ -0,0 +1,16 @@
|
|||
|
||||
# <%= description %>
|
||||
interface <%= name %>
|
||||
{
|
||||
AdvSendAdvert on;
|
||||
MinRtrAdvInterval 3;
|
||||
MaxRtrAdvInterval 10;
|
||||
AdvHomeAgentFlag off;
|
||||
|
||||
prefix <%= prefix %>
|
||||
{
|
||||
AdvOnLink on;
|
||||
AdvAutonomous on;
|
||||
AdvRouterAddr off;
|
||||
};
|
||||
};
|
4
network/templates/rtadvd.conf.erb
Normal file
4
network/templates/rtadvd.conf.erb
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
# <%= description %>
|
||||
<%= name %>:\
|
||||
:addr="<%= prefix.split("/").first %>":":prefixlen#<%= prefix.split("/").last %>:
|
Loading…
Add table
Reference in a new issue