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