Puppet Class: netplan

Defined in:
manifests/init.pp

Summary

Install and configure netplan

Overview

Manages the installation of netplan and controls global options like whether to purge unmanaged files.

Examples:

Basic usage

include netplan

Purge un-managed files

class { netplan:
  purge_configs => true,
}

Purge un-managed files, but ignore a given pattern

class { netplan:
  purge_configs => true,
  purge_ignore  => '90-NM*'
}

Parameters:

  • package_dependencies (Array) (defaults to: ['netplan.io'])

    List of packages to install

  • manage_dependencies (Boolean) (defaults to: true)

    Whether to install the list of package dependencies or not

  • apply (Boolean) (defaults to: true)

    Whether to apply the netplan configuration during the agent run or not

  • purge_configs (Boolean) (defaults to: false)

    Whether to purge un-managed netplan YAML files under /etc/netplan

  • purge_ignore (Optional[String]) (defaults to: undef)

    Match files to ignore when purging configs under /etc/netplan. Uses the ‘ignore` attribute of the native puppet `file` resource.

  • configs (Optional[Hash]) (defaults to: undef)

    An optional hash of netplan configurations supplied via hiera



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
# File 'manifests/init.pp', line 38

class netplan (
  Array $package_dependencies = ['netplan.io'],
  Boolean $manage_dependencies = true,
  Boolean $apply = true,
  Boolean $purge_configs = false,
  Optional[String] $purge_ignore = undef,
  Optional[Hash] $configs = undef,
) {
  case $apply {
    true: {
      $netplan_cmd = 'apply'
    }
    false: {
      $netplan_cmd = 'get'
    }
    default: {
      fail('Invalid value for netplan::apply.')
    }
  }
  if $manage_dependencies == true {
    ensure_packages($package_dependencies)
  }
  file { '/etc/netplan':
    ensure  => directory,
    purge   => $purge_configs,
    ignore  => $purge_ignore,
    recurse => true,
  }
  if $configs {
    $configs.each |String $name, Hash $config| {
      ensure_resource('netplan::config', $name, $config)
    }
  }
  exec { 'netplan_cmd':
    path        => ['/usr/bin','/usr/sbin'],
    command     => "netplan ${netplan_cmd}",
    refreshonly => true,
  }
}