blob: e5921c2ce42eddece097aa5b9bc66f38b5e90a5a [file] [log] [blame]
# Class: datadog_agent::ubuntu
#
# This class contains the DataDog agent installation mechanism for Ubuntu
#
# Parameters:
#
# Actions:
#
# Requires:
#
# Sample Usage:
#
#
class datadog_agent::ubuntu(
$apt_key = '382E94DE',
$agent_version = 'latest',
$other_keys = ['C7A7DA52']
) {
ensure_packages(['apt-transport-https'])
validate_array($other_keys)
if !$::datadog_agent::skip_apt_key_trusting {
$mykeys = concat($other_keys, [$apt_key])
::datadog_agent::ubuntu::install_key { $mykeys:
before => File['/etc/apt/sources.list.d/datadog.list'],
}
}
file { '/etc/apt/sources.list.d/datadog.list':
source => 'puppet:///modules/datadog_agent/datadog.list',
owner => 'root',
group => 'root',
notify => Exec['datadog_apt-get_update'],
require => Package['apt-transport-https'],
}
exec { 'datadog_apt-get_update':
command => '/usr/bin/apt-get update',
refreshonly => true,
tries => 2, # https://bugs.launchpad.net/launchpad/+bug/1430011 won't get fixed until 16.04 xenial
try_sleep => 30,
}
package { 'datadog-agent-base':
ensure => absent,
before => Package['datadog-agent'],
}
package { 'datadog-agent':
ensure => $agent_version,
require => [File['/etc/apt/sources.list.d/datadog.list'],
Exec['datadog_apt-get_update']],
}
service { 'datadog-agent':
ensure => $::datadog_agent::service_ensure,
enable => $::datadog_agent::service_enable,
hasstatus => false,
pattern => 'dd-agent',
require => Package['datadog-agent'],
}
}