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}/"],
}
}
|