root / manifests / rule.pp @ 09b07e56
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 | } |