Марионетка генерирует ошибки каждый раз, когда модуль изменяется

Ubuntu имеет несколько опций включая, запускают используемый в Redhat. Другой очень интересной опцией является Предварительный отбор

Поиск Google приводит к этой ссылке Автоматическая установка. Это предлагает много альтернатив.

1
задан 23 May 2017 в 15:41
1 ответ

Есть ли причина, по которой у вас нет определения основного класса в файле init.pp ?

My понимание обнаружения классов является рудиментарным, но файл modules / mod1 / mod1.pp будет автоматически проверяться на наличие класса mod1 :: mod1 , а не на mod1 ] класс.

Насколько мне известно, класс mod1 всегда должен быть определен в init.pp , но это не означает, что весь ваш модуль » s config должен быть там - подклассы полезны!

Дизайн модуля, который, как мне кажется, рекомендуется в наши дни, выглядит следующим образом:

mod1 / init.pp :

class mod1 {
  include mod1::install
  include mod1::config
  include mod1::service
}

mod1 / install .pp :

class mod1::install {
  package { "somepackage":
    ensure => installed,
  }
}

mod1 / config.pp :

class mod1::config {
  file { "/etc/someapp.conf":
    content => "foo",
    require => Class["mod1::install"],
    notify  => Class["mod1::service"],
  }
}

mod1 / service.pp :

class mod1::service {
  service { "someapp":
    ensure => running,
  }
}

Изменить: далее, вы не должны использовать импорт внутри модулей:

http://docs.puppetlabs.com/puppet/2.7/reference/lang_import.html

Поведение импорта в автоматически загружаемых манифестах не определено и может варьироваться случайным образом между второстепенными версиями Кукольный. Вы никогда не должны размещать операторы импорта в модулях; они должны существовать только в site.pp.

2
ответ дан 3 December 2019 в 21:32

Теги

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