Используя Марионеточный способный модуль

Я - абсолютный новичок в Puppet, и у меня есть проблема, когда я пытаюсь установить пакет через способный модуль.

class newrelic {
        apt::source {
                'newrelic':location => 'http://apt.newrelic.com/debian/',
                repos => 'non-free',
                key => '548C16BF',
                key_source => 'https://download.newrelic.com/548C16BF.gpg',
                include_src => false,
                release => 'newrelic',
        }
        package {
                'newrelic-sysmond':ensure => 'present',
                notify => Service['newrelic-sysmond'],
                require => Class['apt::source'],
        }
        service {
                'newrelic-sysmond':ensure => 'running',
                enable => true,
                hasrestart => true,
                hasstatus => true,
                require => Exec['newrelic_config'],
        }
        exec {
                'newrelic_config':path => '/bin:/usr/bin',
                command => "/usr/sbin/nrsysmond-config --set license_key=xxxxxxx",
                user => 'root',
                group => 'root',
                require => Package['newrelic-sysmond'],
                notify => Service['newrelic-sysmond'],
        }
}

Это - ошибка, которую я получаю:

Warning: Scope(Class[Apt::Update]): Could not look up qualified variable '::apt::always_apt_update'; class ::apt has not been evaluated
Warning: Scope(Class[Apt::Update]): Could not look up qualified variable 'apt::update_timeout'; class apt has not been evaluated
Warning: Scope(Class[Apt::Update]): Could not look up qualified variable 'apt::update_tries'; class apt has not been evaluated
Notice: Compiled catalog for host.domain.local in environment production in 0.33 seconds
Error: Could not find dependency Class[Apt::Source] for Package[newrelic-sysmond] at /home/jeroen/puppet/modules/newrelic/manifests/init.pp:16

Какая-либо идея, что я делаю неправильно в моем модуле?

0
задан 26 February 2015 в 14:36
1 ответ

Вам нужно добавить include apt в начало вашего класса, перед объявлением apt :: source : ошибка говорит, что это можно ' t find apt :: things , потому что он не знает, какова более высокая область apt .

include apt будет использовать различные значения по умолчанию, если вы если вы хотите их изменить, вам нужно вместо этого использовать объявление, например:

class { 'apt':
    always_apt_update => true,
}

... Дополнительная информация на странице кузницы .

Кроме того, ваше требование неверно: вам также необходимо указать имя, поэтому я думаю, что оно должно быть Apt :: Source ['newrelic'] вместо Class ['apt :: source'] .

3
ответ дан 4 December 2019 в 12:28

Теги

Похожие вопросы