Projet

Général

Profil

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

root / manifests / config.pp @ ae9872e2

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

1 0ba57c66 mh
# manage a config snippet
2
define nftables::config(
3
  Optional[String]
4
    $content = undef,
5
  Optional[Variant[String,Array[String,1]]]
6
    $source = undef,
7
){
8 e4c32222 Nacho Barrientos
  $concat_name = "nftables-${name}"
9
10
  Package['nftables'] -> concat{
11
    $concat_name:
12
      path           => "/etc/nftables/puppet/${name}.nft",
13
      ensure_newline => true,
14
      owner          => root,
15
      group          => root,
16
      mode           => '0640',
17 0ba57c66 mh
  } ~> Service['nftables']
18
19 e4c32222 Nacho Barrientos
  $data = split($name, '-')
20
21
  concat::fragment {
22
    "${concat_name}-header":
23
      target  => $concat_name,
24
      order   => '00',
25
      content => "table ${data[0]} ${data[1]} {",
26
  }
27
28 0ba57c66 mh
  if $source {
29 e4c32222 Nacho Barrientos
    concat::fragment {
30
      "${concat_name}-body":
31
        target => $concat_name,
32
        order  => 98,
33
        source => $source,
34 0ba57c66 mh
    }
35
  } else {
36 e4c32222 Nacho Barrientos
    concat::fragment {
37
      "${concat_name}-body":
38
        target  => $concat_name,
39
        order   => '98',
40
        content => $content,
41 0ba57c66 mh
    }
42
  }
43 e4c32222 Nacho Barrientos
44
  concat::fragment {
45
    "${concat_name}-footer":
46
      target  => $concat_name,
47
      order   => '99',
48
      content => '}',
49
  }
50 0ba57c66 mh
}