manifests/redhat/agent5.pp (71 lines of code) (raw):

# Class: datadog_agent::redhat # # This class contains the DataDog agent installation mechanism for Red Hat derivatives # # Parameters: # $baseurl: # Baseurl for the datadog yum repo # Defaults to http://yum.datadoghq.com/rpm/${::architecture}/ # # Actions: # # Requires: # # Sample Usage: # # class datadog_agent::redhat::agent5( String $baseurl = $datadog_agent::params::agent5_default_repo, String $gpgkey = 'https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public', Boolean $manage_repo = true, String $agent_version = 'latest', String $service_ensure = 'running', Boolean $service_enable = true, ) inherits datadog_agent::params { validate_legacy('Boolean', 'validate_bool', $manage_repo) validate_legacy('Boolean', 'validate_bool', $service_enable) if $manage_repo { $public_key_local = '/etc/pki/rpm-gpg/DATADOG_RPM_KEY.public' validate_legacy('String', 'validate_string', $baseurl) file { 'DATADOG_RPM_KEY.public': owner => root, group => root, mode => '0600', path => $public_key_local, source => $gpgkey } exec { 'install-gpg-key': command => "/bin/rpm --import ${public_key_local}", onlyif => "/usr/bin/gpg --quiet --with-fingerprint -n ${public_key_local} | grep \'A4C0 B90D 7443 CF6E 4E8A A341 F106 8E14 E094 22B3\'", unless => '/bin/rpm -q gpg-pubkey-e09422b3', require => File['DATADOG_RPM_KEY.public'], } if ($facts['yum_agent6_repo'] or $facts['yum_datadog_legacy_repo']) and $agent_version == 'latest' { exec { 'datadog_yum_remove_agent6': command => '/usr/bin/yum -y -q remove datadog-agent', } } else { exec { 'datadog_yum_remove_agent6': command => ':', # NOOP builtin noop => true, refreshonly => true, provider => 'shell', } } yumrepo {'datadog': ensure => absent, notify => Exec['datadog_yum_remove_agent6'], } yumrepo {'datadog6': ensure => absent, notify => Exec['datadog_yum_remove_agent6'], } yumrepo {'datadog5': enabled => 1, gpgcheck => 1, gpgkey => 'https://yum.datadoghq.com/DATADOG_RPM_KEY.public', descr => 'Datadog, Inc.', baseurl => $baseurl, require => Exec['install-gpg-key'], } Package { require => Yumrepo['datadog5']} } package { 'datadog-agent-base': ensure => absent, before => Package[$datadog_agent::params::package_name], } package { $datadog_agent::params::package_name: ensure => $agent_version, } service { $datadog_agent::params::service_name: ensure => $service_ensure, enable => $service_enable, hasstatus => false, pattern => 'dd-agent', require => Package[$datadog_agent::params::package_name], } }