Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8395456
init.pp
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Subscribers
None
init.pp
View Options
# Author:: Liam Bennett (mailto:lbennett@opentable.com)
# Copyright:: Copyright (c) 2013 OpenTable Inc
# License:: MIT
# == Class: kafka
#
# This class will install kafka binaries
#
# === Requirements/Dependencies
#
# Currently requires the puppetlabs/stdlib module on the Puppet Forge in
# order to validate much of the the provided configuration.
#
# === Parameters
#
# [*version*]
# The version of kafka that should be installed.
#
# [*scala_version*]
# The scala version what kafka was built with.
#
# [*install_dir*]
# The directory to install kafka to.
#
# [*mirror_url*]
# The url where the kafka is downloaded from.
#
# [*install_java*]
# Install java if it's not already installed.
#
# [*package_dir*]
# The directory to install kafka.
#
# [*package_name*]
# Package name, when installing kafka from a package.
#
# [*package_ensure*]
# Package version (or 'present', 'absent', 'latest'), when installing kafka from a package.
#
# [*user*]
# User to run kafka as.
#
# [*group*]
# Group to run kafka as.
#
# [*user_id*]
# Create the kafka user with this ID.
#
# [*system_user*]
# Whether the kafka user is a system user or not.
#
# [*group_id*]
# Create the kafka group with this ID.
#
# [*system_group*]
# Whether the kafka group is a system group or not.
#
# [*manage_user*]
# Create the kafka user if it's not already present.
#
# [*manage_group*]
# Create the kafka group if it's not already present.
#
# [*config_dir*]
# The directory to create the kafka config files to.
#
# [*log_dir*]
# The directory for kafka log files.
#
# === Examples
#
#
class
kafka
(
String
$version
=
$kafka::params::version,
String
$scala_version
=
$kafka::params::scala_version,
Stdlib
::
Absolutepath
$install_dir
=
$kafka::params::install_dir,
Stdlib
::
HTTPUrl
$mirror_url
=
$kafka::params::mirror_url,
Boolean
$install_java
=
$kafka::params::install_java,
Stdlib
::
Absolutepath
$package_dir
=
$kafka::params::package_dir,
Optional
[
String
]
$package_name
=
$kafka::params::package_name,
Optional
[
String
]
$mirror_subpath
=
$kafka::params::mirror_subpath,
Optional
[
String
]
$proxy_server
=
$kafka::params::proxy_server,
Optional
[
String
]
$proxy_port
=
$kafka::params::proxy_port,
Optional
[
String
]
$proxy_host
=
$kafka::params::proxy_host,
Optional
[
String
]
$proxy_type
=
$kafka::params::proxy_type,
String
$package_ensure
=
$kafka::params::package_ensure,
String
$user
=
$kafka::params::user,
String
$group
=
$kafka::params::group,
Boolean
$system_user
=
$kafka::params::system_user,
Boolean
$system_group
=
$kafka::params::system_group,
Optional
[
Integer
]
$user_id
=
$kafka::params::user_id,
Optional
[
Integer
]
$group_id
=
$kafka::params::group_id,
Boolean
$manage_user
=
$kafka::params::manage_user,
Boolean
$manage_group
=
$kafka::params::manage_group,
Stdlib
::
Absolutepath
$config_dir
=
$kafka::params::config_dir,
Stdlib
::
Absolutepath
$log_dir
=
$kafka::params::log_dir,
Optional
[
String
]
$install_mode
=
$kafka::params::install_mode,
)
inherits
kafka
::
params
{
if
$install_java
{
class
{
'::java'
:
distribution
=>
'jdk'
,
}
}
if
$manage_group
{
group
{
$group:
ensure
=>
present
,
gid
=>
$group_id,
system
=>
$system_group,
}
}
if
$manage_user
{
user
{
$user:
ensure
=>
present
,
shell
=>
'/bin/bash'
,
require
=>
Group
[
$group],
uid
=>
$user_id,
system
=>
$system_user,
}
}
file
{
$config_dir:
ensure
=>
directory
,
owner
=>
'root'
,
group
=>
'root'
,
}
file
{
$log_dir:
ensure
=>
directory
,
owner
=>
$user,
group
=>
$group,
require
=>
[
Group
[
$group],
User
[
$user],
],
}
if
$package_name
==
undef
{
include
::
archive
$mirror_path
=
$mirror_subpath
?
{
# if mirror_subpath was not changed,
# we adapt it for the version
$kafka::params::mirror_subpath
=>
"kafka/${version}"
,
# else, we just take whatever was supplied:
default
=>
$mirror_subpath,
}
$basefilename
=
"kafka_${scala_version}-${version}.tgz"
$package_url
=
"${mirror_url}${mirror_path}/${basefilename}"
$source
=
$mirror_url
?
{
/
tgz
$/
=>
$mirror_url,
default
=>
$package_url,
}
$install_directory
=
$install_dir
?
{
# if install_dir was not changed,
# we adapt it for the scala_version and the version
$kafka::params::install_dir
=>
"/opt/kafka-${scala_version}-${version}"
,
# else, we just take whatever was supplied:
default
=>
$install_dir,
}
file
{
$package_dir:
ensure
=>
directory
,
owner
=>
$user,
group
=>
$group,
require
=>
[
Group
[
$group],
User
[
$user],
],
}
file
{
$install_directory:
ensure
=>
directory
,
owner
=>
$user,
group
=>
$group,
mode
=>
$install_mode,
require
=>
[
Group
[
$group],
User
[
$user],
],
}
file
{
'/opt/kafka'
:
ensure
=>
link
,
target
=>
$install_directory,
require
=>
File
[
$install_directory],
}
if
$proxy_server
==
undef
and
$proxy_host
!=
undef
and
$proxy_port
!=
undef
{
$final_proxy_server
=
"${proxy_host}:${proxy_port}"
}
else
{
$final_proxy_server
=
$proxy_server
}
archive
{
"${package_dir}/${basefilename}"
:
ensure
=>
present
,
extract
=>
true
,
extract_command
=>
'tar xfz %s --strip-components=1'
,
extract_path
=>
$install_directory,
source
=>
$source,
creates
=>
"${install_directory}/config"
,
cleanup
=>
true
,
proxy_server
=>
$final_proxy_server,
proxy_type
=>
$proxy_type,
user
=>
$user,
group
=>
$group,
require
=>
[
File
[
$package_dir],
File
[
$install_directory],
Group
[
$group],
User
[
$user],
],
before
=>
File
[
$config_dir],
}
}
else
{
package
{
$package_name:
ensure
=>
$package_ensure,
before
=>
File
[
$config_dir],
}
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Jun 4 2025, 7:39 PM (10 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3303674
Attached To
R143 puppet-puppet-kafka
Event Timeline
Log In to Comment