Puppet Class: bind::install

Defined in:
manifests/install.pp

Summary

Manages BIND installation

Overview

SPDX-License-Identifier: AGPL-3.0-or-later



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'manifests/install.pp', line 7

class bind::install {
  assert_private()

  if $bind::authoritative {
    ensure_packages(
      [
        'g++',
        'make',
      ],
      {
        ensure => installed,
        before => Package['dnsruby'],
      },
    )

    # workaround for https://github.com/rvm/rvm/issues/4975
    # The dnsruby build fails with the Ruby 2.7.1 build included with Puppet 7.1.0 if /usr/bin/mkdir
    # is missing.
    # FIXME: remove this when Puppet's Ruby is fixed.
    file { '/usr/bin/mkdir':
      ensure => link,
      target => '/bin/mkdir',
      before => Package['dnsruby'],
    }

    ensure_packages(
      'dnsruby',
      {
        ensure   => installed,
        provider => puppet_gem,
      },
    )
  }

  if $bind::package_backport {
    require apt::backports
  }

  $package_install_options = $bind::package_backport ? {
    true    => ['--target-release', "${facts['os']['distro']['codename']}-backports"],
    default => undef,
  }

  if $bind::resolvconf_service_enable {
    ensure_packages($bind::resolvconf_package_name, {before => Package[$bind::package_name]})
  }

  if $bind::package_manage {
    package { $bind::package_name:
      ensure          => $bind::package_ensure,
      install_options => $package_install_options,
    }
  }

  if $bind::dev_packages_ensure {
    if $bind::package_backport {
      ensure_packages('bind9-dev', {
        ensure          => $bind::dev_packages_ensure,
        install_options => $package_install_options,
      })
    } else {
      ensure_packages($bind::dev_packages, {ensure => $bind::dev_packages_ensure})
    }
  }

  if $bind::doc_packages_ensure {
    ensure_packages($bind::doc_packages, {ensure => $bind::doc_packages_ensure})
  }

  if $bind::utils_packages_ensure {
    if $bind::package_backport {
      ensure_packages('bind9-dnsutils', {
        ensure          => $bind::utils_packages_ensure,
        install_options => $package_install_options,
      })
    } else {
      ensure_packages($bind::utils_packages, {ensure => $bind::utils_packages_ensure})
    }
  }
}