Defined Type: dockeragent::image

Defined in:
manifests/image.pp

Overview

Parameters:

  • registry (Any) (defaults to: undef)
  • yum_cache (Any) (defaults to: false)
  • gateway_ip (Any) (defaults to: undef)
  • install_agent (Any) (defaults to: true)
  • lvm_bashrc (Any) (defaults to: false)
  • install_dev_tools (Any) (defaults to: false)
  • learning_user (Any) (defaults to: false)
  • image_name (Any) (defaults to: undef)
  • disable_mco (Any) (defaults to: false)


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
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'manifests/image.pp', line 4

define dockeragent::image (
  $registry          = undef,
  $yum_cache         = false,
  $gateway_ip        = undef,
  $install_agent     = true,
  $lvm_bashrc        = false,
  $install_dev_tools = false,
  $learning_user     = false,
  $image_name        = undef,
  $disable_mco       = false,
){

  file { "/etc/docker/${title}/":
    ensure  => directory,
    require => Class['docker'],
  }

  if $install_agent {
    $dockerfile_template = 'agent_Dockerfile.epp'
  } else {
    $dockerfile_template = 'no_agent_Dockerfile.epp'
  }

  $docker_files = [
    {'filename' => "Dockerfile",       'template' => $dockerfile_template},
    {'filename' => "puppet.conf",      'template' => 'puppet.conf.epp'},
    {'filename' => "local_cache.repo", 'template' => 'local_cache.repo.epp'},
    {'filename' => "yum.conf",         'template' => 'yum.conf.epp'},
    {'filename' => "gemrc",            'template' => 'gemrc.epp'}
  ]

  if $image_name {
    $actual_image_name = $image_name
  } else {
    $actual_image_name = $registry ? {
      undef   => 'centos:7',
      default => "${registry}/centos:7",
    }
  }

  $gem_source_uri = 'file:///var/cache/rubygems/'

  $docker_files.each |$docker_file|{
    file { "/etc/docker/${title}/${docker_file['filename']}":
      ensure            => file,
      content           => epp("dockeragent/${docker_file['template']}",{
        'os_major'          => $::os['release']['major'],
        'gateway_ip'        => $gateway_ip,
        'basename'          => $actual_image_name,
        'yum_cache'         => $yum_cache,
        'lvm_bashrc'        => $lvm_bashrc,
        'install_dev_tools' => $install_dev_tools,
        'learning_user'     => $learning_user,
        'gem_source_uri'    => $gem_source_uri,
        'disable_mco'       => $disable_mco,
        }),
    }
  }

  if $lvm_bashrc {
    file { "/etc/docker/${title}/bashrc":
      ensure => file,
      mode   => '0755',
      source => 'puppet:///modules/dockeragent/bashrc',
    }
    file { "/etc/docker/${title}/bash_profile":
      ensure => file,
      mode   => '0755',
      source => 'puppet:///modules/dockeragent/bash_profile',
    }
  }

  file { "/etc/docker/${title}/download_catalogs.sh":
    ensure  => file,
    mode    => '0755',
    source  => 'puppet:///modules/dockeragent/download_catalogs.sh',
  }

  file { "/etc/docker/${title}/refresh-mcollective-metadata":
    ensure  => file,
    mode    => '0755',
    source  => 'puppet:///modules/dockeragent/refresh-mcollective-metadata',
  }

  file { "/etc/docker/${title}/root.cron":
    ensure  => file,
    mode    => '0644',
    source  => 'puppet:///modules/dockeragent/root.cron',
  }
  
  file { "/etc/docker/${title}/crond.pam":
    ensure  => file,
    mode    => '0644',
    source  => 'puppet:///modules/dockeragent/crond.pam',
  }

  docker::image {$title:
    docker_dir => "/etc/docker/${title}/",
    require    => File["/etc/docker/${title}/"],
  }
}