Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / manifests / rule.pp @ 2f28cced

Historique | Voir | Annoter | Télécharger (1,18 ko)

1 8efbdf9a tr
# manage a chain rule
2 0ba57c66 mh
# Name should be:
3 a534e044 mh
#   CHAIN_NAME-rulename
4 11bf7237 Steve Traylen
define nftables::rule (
5 31b17627 Steve Traylen
  Enum['present','absent'] $ensure = 'present',
6
  Pattern[/^[a-zA-Z0-9_]+-[a-zA-Z0-9_]+(-\d+)?$/] $rulename = $title,
7
  Pattern[/^\d\d$/] $order = '50',
8
  Optional[String] $table = 'inet-filter',
9
  Optional[String] $content = undef,
10
  Optional[Variant[String,Array[String,1]]] $source = undef,
11 11bf7237 Steve Traylen
) {
12 0ba57c66 mh
  if $ensure == 'present' {
13 8efbdf9a tr
    $data = split($rulename, '-')
14
15 18ec6f48 tr
    if $data[2] {
16
      $fragment = "nftables-${table}-chain-${data[0]}-rule-${data[1]}-${data[2]}"
17
    } else {
18
      $fragment = "nftables-${table}-chain-${data[0]}-rule-${data[1]}"
19
    }
20
21 11bf7237 Steve Traylen
    concat::fragment { "${fragment}_header":
22 e53053ce Steve Traylen
      content => "#   Start of fragment order:${order} rulename:${rulename}",
23 61f03b47 Steve Traylen
      order   => "${order}-${fragment}-a",
24 e53053ce Steve Traylen
      target  => "nftables-${table}-chain-${data[0]}",
25
    }
26
27 11bf7237 Steve Traylen
    concat::fragment {
28 18ec6f48 tr
      $fragment:
29 61f03b47 Steve Traylen
        order  => "${order}-${fragment}-b",
30 8efbdf9a tr
        target => "nftables-${table}-chain-${data[0]}",
31 0ba57c66 mh
    }
32
33
    if $content {
34 11bf7237 Steve Traylen
      Concat::Fragment[$fragment] {
35 0ba57c66 mh
        content => "  ${content}",
36
      }
37
    } else {
38 11bf7237 Steve Traylen
      Concat::Fragment[$fragment] {
39 0ba57c66 mh
        source => $source,
40
      }
41
    }
42
  }
43
}