Defined Type: dockeragent::node

Defined in:
manifests/node.pp

Overview

Create and run a Docker containerized Puppet Agent

Parameters:

  • ensure (Any) (defaults to: present)
  • ports (Any) (defaults to: undef)
  • privileged (Any) (defaults to: false)
  • image (Any) (defaults to: 'agent')
  • require_dockeragent (Any) (defaults to: true)
  • ip_base (Any) (defaults to: '172.18.0')


2
3
4
5
6
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
# File 'manifests/node.pp', line 2

define dockeragent::node (
  $ensure = present,
  $ports = undef,
  $privileged = false,
  $image = 'agent',
  $require_dockeragent = true,
  $ip_base = '172.18.0',
) {

  if $require_dockeragent {
    require dockeragent
    $gateway_ip = $dockeragent::gateway_ip
  } else {
    $gateway_ip = "${ip_base}.1"
  }

  $container_volumes = [
    '/var/yum:/var/yum',
    '/var/cache/yum:/var/cache/yum',
    '/etc/yum.repos.d:/etc/yum.repos.d',
    '/opt/puppetlabs/server/data:/opt/puppetlabs/server/data',
    '/sys/fs/cgroup:/sys/fs/cgroup:ro',
    '/etc/docker/ssl_dir/:/etc/puppetlabs/puppet/ssl',
    '/var/cache/rubygems:/var/cache/rubygems',
  ]

  docker::run { $title:
    ensure           => $ensure,
    hostname         => $title,
    image            => $image,
    net              => 'dockeragent-net',
    command          => '/usr/lib/systemd/systemd',
    ports            => $ports,
    privileged       => $privileged,
    volumes          => $container_volumes,
    env              =>  [
      'RUNLEVEL=3',
      'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/puppetlabs/bin',
      'HOME=/root/',
      'TERM=xterm'
    ],
    extra_parameters => [
      "--add-host \"${::fqdn} puppet:${gateway_ip}\"",
      '--security-opt seccomp=unconfined',
      '--restart=always',
      '--tmpfs /tmp',
      '--tmpfs /run',
    ],
  }

}