Ubuntu имеет несколько опций включая, запускают используемый в Redhat. Другой очень интересной опцией является Предварительный отбор
Поиск Google приводит к этой ссылке Автоматическая установка. Это предлагает много альтернатив.
Есть ли причина, по которой у вас нет определения основного класса в файле 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.