Projet

Général

Profil

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

root / manifests / rule.pp @ 11bf7237

Historique | Voir | Annoter | Télécharger (1,19 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 0ba57c66 mh
  Enum['present','absent']
6 11bf7237 Steve Traylen
  $ensure = 'present',
7 a074dec2 tr
  Pattern[/^[a-zA-Z0-9_]+-[a-zA-Z0-9_]+(-\d+)?$/]
8 11bf7237 Steve Traylen
  $rulename = $title,
9 0ba57c66 mh
  Pattern[/^\d\d$/]
10 11bf7237 Steve Traylen
  $order = '50',
11 0ba57c66 mh
  Optional[String]
12 11bf7237 Steve Traylen
  $table = 'inet-filter',
13 8efbdf9a tr
  Optional[String]
14 11bf7237 Steve Traylen
  $content = undef,
15 0ba57c66 mh
  Optional[Variant[String,Array[String,1]]]
16 11bf7237 Steve Traylen
  $source = undef,
17
) {
18 0ba57c66 mh
  if $ensure == 'present' {
19 8efbdf9a tr
    $data = split($rulename, '-')
20
21 18ec6f48 tr
    if $data[2] {
22
      $fragment = "nftables-${table}-chain-${data[0]}-rule-${data[1]}-${data[2]}"
23
    } else {
24
      $fragment = "nftables-${table}-chain-${data[0]}-rule-${data[1]}"
25
    }
26
27 11bf7237 Steve Traylen
    concat::fragment { "${fragment}_header":
28 e53053ce Steve Traylen
      content => "#   Start of fragment order:${order} rulename:${rulename}",
29 61f03b47 Steve Traylen
      order   => "${order}-${fragment}-a",
30 e53053ce Steve Traylen
      target  => "nftables-${table}-chain-${data[0]}",
31
    }
32
33 11bf7237 Steve Traylen
    concat::fragment {
34 18ec6f48 tr
      $fragment:
35 61f03b47 Steve Traylen
        order  => "${order}-${fragment}-b",
36 8efbdf9a tr
        target => "nftables-${table}-chain-${data[0]}",
37 0ba57c66 mh
    }
38
39
    if $content {
40 11bf7237 Steve Traylen
      Concat::Fragment[$fragment] {
41 0ba57c66 mh
        content => "  ${content}",
42
      }
43
    } else {
44 11bf7237 Steve Traylen
      Concat::Fragment[$fragment] {
45 0ba57c66 mh
        source => $source,
46
      }
47
    }
48
  }
49
}