Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9340840
daemon.pp
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Subscribers
None
daemon.pp
View Options
# Define: prometheus::daemon
#
# This define managed prometheus daemons that don't have their own class
#
# [*version*]
# The binary release version
#
# [*real_download_url*]
# Complete URL corresponding to the where the release binary archive can be downloaded
#
# [*notify_service*]
# The service to notify when something changes in this define
#
# [*user*]
# User which runs the service
#
# [*install_method*]
# Installation method: url or package
#
# [*download_extension*]
# Extension for the release binary archive
#
# [*os*]
# Operating system (linux is the only one supported)
#
# [*arch*]
# Architecture (amd64 or i386)
#
# [*bin_dir*]
# Directory where binaries are located
#
# [*package_name*]
# The binary package name
#
# [*package_ensure*]
# If package, then use this for package ensure default 'undef'
#
# [*manage_user*]
# Whether to create user or rely on external code for that
#
# [*extra_groups*]
# Extra groups of which the user should be a part
#
# [*manage_group*]
# Whether to create a group for or rely on external code for that
#
# [*service_ensure*]
# State ensured for the service (default 'running')
#
# [*service_enable*]
# Whether to enable the service from puppet (default true)
#
# [*manage_service*]
# Should puppet manage the service? (default true)
#
define
prometheus
::
daemon
(
$version,
$real_download_url,
$notify_service,
$user,
$group,
$install_method
=
$::prometheus::params::install_method,
$download_extension
=
$::prometheus::params::download_extension,
$os
=
$::prometheus::params::os,
$arch
=
$::prometheus::params::arch,
$bin_dir
=
$::prometheus::params::bin_dir,
$package_name
=
undef
,
$package_ensure
=
undef
,
$manage_user
=
true
,
$extra_groups
=
[],
$manage_group
=
true
,
$purge
=
true
,
$options
=
''
,
$init_style
=
$::prometheus::params::init_style,
$service_ensure
=
'running'
,
$service_enable
=
true
,
$manage_service
=
true
,
)
{
case
$install_method
{
'url'
:
{
archive
{
"/tmp/${name}-${version}.${download_extension}"
:
ensure
=>
present
,
extract
=>
true
,
extract_path
=>
'/opt'
,
source
=>
$real_download_url,
checksum_verify
=>
false
,
creates
=>
"/opt/${name}-${version}.${os}-${arch}/${name}"
,
cleanup
=>
true
,
}
->
file
{
"/opt/${name}-${version}.${os}-${arch}/${name}"
:
owner
=>
'root'
,
group
=>
0
,
# 0 instead of root because OS X uses "wheel".
mode
=>
'0555'
,
}
->
file
{
"${bin_dir}/${name}"
:
ensure
=>
link
,
notify
=>
$notify_service,
target
=>
"/opt/${name}-${version}.${os}-${arch}/${name}"
,
}
}
'package'
:
{
package
{
$package_name:
ensure
=>
$package_ensure,
}
if
$manage_user
{
User
[
$user]
->
Package
[
$package_name]
}
}
'none'
:
{}
default
:
{
fail
(
"The provided install method ${install_method} is invalid"
)
}
}
if
$manage_user
{
ensure_resource
(
'user'
,
[
$user
],
{
ensure
=>
'present'
,
system
=>
true
,
groups
=>
$extra_groups,
})
if
$manage_group
{
Group
[
$group]
->
User
[
$user]
}
}
if
$manage_group
{
ensure_resource
(
'group'
,
[
$group
],
{
ensure
=>
'present'
,
system
=>
true
,
})
}
if
$init_style
{
case
$init_style
{
'upstart'
:
{
file
{
"/etc/init/${name}.conf"
:
mode
=>
'0444'
,
owner
=>
'root'
,
group
=>
'root'
,
content
=>
template
(
'prometheus/daemon.upstart.erb'
),
notify
=>
$notify_service,
}
file
{
"/etc/init.d/${name}"
:
ensure
=>
link
,
target
=>
'/lib/init/upstart-job'
,
owner
=>
'root'
,
group
=>
'root'
,
mode
=>
'0755'
,
}
}
'systemd'
:
{
file
{
"/etc/systemd/system/${name}.service"
:
mode
=>
'0644'
,
owner
=>
'root'
,
group
=>
'root'
,
content
=>
template
(
'prometheus/daemon.systemd.erb'
),
}
~>
exec
{
"${name}-systemd-reload"
:
command
=>
'systemctl daemon-reload'
,
path
=>
[
'/usr/bin'
,
'/bin'
,
'/usr/sbin'
],
refreshonly
=>
true
,
notify
=>
$notify_service,
}
}
'sysv'
:
{
file
{
"/etc/init.d/${name}"
:
mode
=>
'0555'
,
owner
=>
'root'
,
group
=>
'root'
,
content
=>
template
(
'prometheus/daemon.sysv.erb'
),
}
}
'debian'
:
{
file
{
"/etc/init.d/${name}"
:
mode
=>
'0555'
,
owner
=>
'root'
,
group
=>
'root'
,
content
=>
template
(
'prometheus/daemon.debian.erb'
),
notify
=>
$notify_service,
}
}
'sles'
:
{
file
{
"/etc/init.d/${name}"
:
mode
=>
'0555'
,
owner
=>
'root'
,
group
=>
'root'
,
content
=>
template
(
'prometheus/daemon.sles.erb'
),
notify
=>
$notify_service,
}
}
'launchd'
:
{
file
{
"/Library/LaunchDaemons/io.${name}.daemon.plist"
:
mode
=>
'0644'
,
owner
=>
'root'
,
group
=>
'wheel'
,
content
=>
template
(
'prometheus/daemon.launchd.erb'
),
notify
=>
$notify_service,
}
}
default
:
{
fail
(
"I don't know how to create an init script for style ${init_style}"
)
}
}
}
$init_selector
=
$init_style
?
{
'launchd'
=>
"io.${name}.daemon"
,
default
=>
$name,
}
if
$manage_service
==
true
{
service
{
$name:
ensure
=>
$service_ensure,
name
=>
$init_selector,
enable
=>
$service_enable,
}
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 4, 11:14 AM (4 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3371451
Attached To
R141 puppet-puppet-prometheus
Event Timeline
Log In to Comment