@demsi

Как проверить уникальность параметров своего ресурса в puppet?

Создал класс 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")
}

И я не могу понять как это сделать. Ну или как правильно это делать без таких костылей, как создание файла.
Буду очень благодарен советам.
  • Вопрос задан
  • 180 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы