Puppet Class: kafka::broker::install
- Defined in:
- manifests/broker/install.pp
Overview
Class kafka::broker::install
This private class installs a kafka broker package and it’s dependencies
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 |
# File 'manifests/broker/install.pp', line 5
class kafka::broker::install {
$basefilename = "kafka_${kafka::broker::scala_version}-${kafka::broker::version}.tgz"
$basename = regsubst($basefilename, '(.+)\.tgz$', '\1')
$package_url = "${kafka::broker::mirror_url}/kafka/${kafka::broker::version}/${basefilename}"
$install_dir = "/usr/local/kafka-${kafka::broker::scala_version}-${kafka::broker::version}"
if $caller_module_name != $module_name {
fail("Use of private class ${name} by ${caller_module_name}")
}
if $kafka::broker::install_java {
class {'java':
distribution => 'jdk'
}
}
group { 'kafka':
ensure => present
}
user { 'kafka':
ensure => present,
shell => '/bin/bash',
require => Group['kafka']
}
file { $kafka::broker::package_dir:
ensure => 'directory',
owner => 'kafka',
group => 'kafka'
}
file { $install_dir:
ensure => directory,
owner => 'kafka',
group => 'kafka',
alias => 'kafka-app-dir'
}
ensure_resource('package','wget', {'ensure' => 'installed'})
exec { 'download-kafka-package':
command => "wget -O ${kafka::broker::package_dir}/${basefilename} ${package_url} 2> /dev/null",
path => ['/usr/bin', '/bin'],
creates => "${kafka::broker::package_dir}/${basefilename}",
require => [ File[$kafka::broker::package_dir], Package['wget'] ]
}
exec { 'untar-kafka-package':
command => "tar xfvz ${kafka::broker::package_dir}/${basefilename} -C ${install_dir} --strip-components=1",
creates => "${install_dir}/${basename}/config",
alias => 'untar-kafka',
require => [ Exec['download-kafka-package'], File['kafka-app-dir'] ],
user => 'kafka',
path => ['/bin', '/usr/bin', '/usr/sbin']
}
file { '/usr/local/kafka':
ensure => link,
owner => 'kafka',
group => 'kafka',
target => $install_dir
}
}
|