Я пишу кукольный модуль для своего приложения, и с некоторых дней я застрял в том, как управлять репо.
У меня есть Кукольный 4.10 , и все узлы Centos 7
Файл init.pp в модуле моего приложения:
class my_app{
anchor { '::my_app::begin': } ->
class { '::my_app::repo': } ->
class { '::my_app::install': } ->
class { '::my_app::config': } ->
class { '::my_app::service': } ->
anchor { '::my_app::end': }
}
и repo.pp класс:
class my_app::repo{
if ! defined(Yumrepo[my_app]) {
yumrepo {'my_app' :
ensure => 'present',
descr => 'my_app RPM repository',
baseurl => 'http://my_repo_server.com/repos/my_app',
gpgcheck => 0
}
}
}
Класс init.pp установлен на всех серверах, теперь проблема в том, что на всех клиентах и, возможно, на некоторых серверах также должен быть my_app_client.pp :
class my_app::my_app_client{
include my_app::repo
[...]
}
Код возвращает ошибку уже объявлено , потому что я объявил класс my_app :: repo дважды.
Я не думаю, что определение 2 репозиториев в этом случае является правильным, и объявлять его как Определенные типы ресурсов , похоже, тоже не работает.
Как мне решить эту проблему? Какова хорошая практика в этом случае?
Заранее спасибо.