Вот такой сценарий. У меня есть два веб-приложения (назовем их webapp1 и webapp2), которым нужны apache, php (с некоторыми модулями) и сам код веб-приложения. Я установил это следующим образом (используя шаблон профилей ролей):
modules/
apache/
php/
webapp1/ # responsible for cloning the repo and setting up config files
webapp2/ # responsible for cloning the repo and setting up config files
profiles/
manifests/
webapp1.pp # responsible for putting the stack together
webapp2.pp # responsible for putting the stack together
профили / манифесты / webapp1.pp выглядит примерно так:
class profiles::webapp1 {
include ::apache
include ::php
include ::webapp1
}
а профили / манифесты / webapp1.pp выглядят примерно так:
class profiles::webapp2 {
include ::apache
include ::php
include ::webapp2
}
Теперь оба приложения также должны обслуживаться через HTTPS и иметь одинаковый набор сертификатов SSL (представьте, что webapp1 и webapp2 обслуживаются из разных поддоменов домена, и у нас есть сертификат с подстановочными знаками, поэтому оба приложения могут использовать один и тот же сертификат). Теперь я не могу выбрать манифест для настройки SSL (т.е. настройки ключей и сертификатов с использованием file
тип. Причина в том, что, по крайней мере, сейчас у меня будут и webapp1, и webapp2 в одном манифесте роли, но я хотел бы быть гибким, чтобы я мог перемещать webapp1 и webapp2 в разных ролях, не беспокоясь о настройке SSL по-разному.
Я бы выделил их в отдельный класс, например "wildcard_ssl_", и, вероятно, включить его из обоих классов 'webappX' или, возможно, вместо этого из обоих профилей.