Создал класс
lb
И определяймый ресурс
lb::vhost
Выглядет вот так:
define lb::vhost (
String $domain = $title,
String $project = "",
String $network = "",
String $ensure = present,
String $syslog_nginx_access = "localhost:518"
String $syslog_nginx_error = "localhost:518",
Boolean $syslog = false,
Hash $upstream_servvers = { '127.0.0.1:81' => 1 },
String $custom = "",
) {
if $project == "" or $network == "" {
fail("Require params \$project and \$network")
}
...
...
В
site.pp я например подключаю несколько таких ресурсов:
node 'test_server' {
class { 'lb': }
lb::vhost { 'a.example.com':
project => 'project1',
network => 'network1',
}
lb::vhost { 'b.example.com':
project => 'project1',
network => 'network1',
}
}
И мне нужно, чтобы нельзя было подключать разным доменам одинаковые значения
project и
network
И я не могу понять, как мне в
vhost.pp проверить ситуацию, если для разных доменов установлены одинаковые project и network.
Была идея, создавать файл где нибудь /path/to/project_network. Если файл существует - выдавать ошибку. Но я же не могу это сделать как в bash -
if [[ -f file_name ]]
.
То есть мне получается в
puppet нужно как-то проверить:
if файл существует {
fail("project and network already exists")
}
И я не могу понять как это сделать. Ну или как правильно это делать без таких костылей, как создание файла.
Буду очень благодарен советам.