Мы используем Puppet для предоставления ресурсов Tomcat7 в файл context.xml для веб-архивов.
У нас есть три архива, каждому нужен отдельный набор записей ресурсов в context.xml. Использовать шаблон и заполнять нужные артефакты легко, если у нас есть один артефакт на экземпляр tomcat.
Но у нас также есть сценарий, когда все три артефакта устанавливаются в один экземпляр tomcat (для этапов тестирования). В этом случае нам нужны все записи ресурсов для трех артефактов одновременно.
На ум приходят два решения, оба меня не очень удовлетворяют:
Прекратите использовать шаблоны и используйте линзы Augeas для редактирования файла. Против: context.xml представляет собой XML, и использование augeas подвержено ошибкам и в значительной степени нечитаемо.
Удалите часть, копирующую шаблон, из классов артефакта, и фактор будет передан в подкласс, такой как артефакт::supply-context (который обеспечивает правильную конфигурацию для одного артефакта). Также предоставьте класс all_artifacts::supply-context (который предоставляет конфигурацию для всех контекстов).
Против: Использование классов больше не прозрачно. Один артефакт: «включить артефактA, артефактA::supply-context». Все артефакты: «включают артефакт A, артефакт B, артефакт C, all_artifacts::supply-context.
У кого-нибудь есть лучшее решение или предложения?