Я написал марионеточные манифесты и использую марионетку для развертывания своей системы.Сейчас я занимаюсь рефакторингом манифестов, чтобы сделать его обслуживаемым.
Одна из подсистем - tomcat с веб-приложениями.У меня ~ 10 веб-приложений.Каждый из них имеет почти одинаковую процедуру для развертывания.Пока я использую классы.10 файлов - почти идентичные.
Когда я попытался использовать параметризованный класс, puppet позволяет мне создать его экземпляр только один раз.Затем я попытался создать «пустые» классы, которые наследуются от класса webapp.Это не работает так же, потому что puppet жалуется, что параметры не передаются родительскому классу.
Я не вижу метода, который мог бы абстрагировать код.Как это сделать?
Я бы хотел добиться:
node {
class {"webapp::first": param1 = one}
class {"webapp::second": param1 = two}
}
, где первое и второе - это приложения, использующие одни и те же рецепты.
Я знаю, что есть определение, но рецепт довольно большой, и даже если бы это было возможно, я нахожу класс более читабельным.