Я пытаюсь выяснить, какие вещи должны быть в git в манифесте марионетки, а какие должны быть в env vars, например FACTER_my_var
и используйте это в манифесте.
Сценарий: вы развертываете 3 приложения php, и вы уже создали все уровни до приложения в других манифестах (базовая система, расширения php, пользователи и т. Д.), И все, что осталось, это установка правильного приложения (из репозитория apt ) и создание vhost.
У меня есть соблазн иметь что-то вроде:
apache::vhost { $::project_hostname:
priority => '10',
port => '80',
docroot => $::project_document_root,
logroot => "/var/log/apache2/${$::project_name}",
serveradmin => 'example@example.com',
require => Package[httpd],
ssl => false,
override => 'all',
setenv => ["APP_KERNEL dev"]
}
Это будет работать на каждом сервере, и FACTER_project_*
vars будут устанавливаться для каждого сервера. Очевидным ограничением этого может быть то, что вы не можете запускать более одного приложения с этим конкретным примером.
Или вы бы предпочли project_x.pp
, project_y.pp
у которых есть жестко заданные пути и имена?