Назад | Перейти на главную страницу

Марионетка: условный источник файла на основе соглашения об именах

Я привязываюсь к марионетке для моего окружения - и я хотел бы иметь условный file ресурс в зависимости от того, содержит ли сам модуль файл на основе соглашения об именах.

Итак, визуально предположим, что модуль с именем mysql и его макет:

mysql/
    /files
        /etc/
            my.cnf
            my.hostname1.cnf
            my.hostname2.cnf
     /manifests
            init.pp
...

Поэтому я хотел бы, чтобы блок проверял, существует ли ресурс для модуля или нет, и предпринимал соответствующие действия в псевдотерминах:

file { '/etc/my.cnf':

  if -f 'puppet:///mysql/etc/my.$hostname.cnf' {
      source => 'puppet:///mysql/etc/my.$hostname.cnf'
  }
  else {
      source => 'puppet:///mysql/etc/my.cnf'
  }
}

Таким образом, не нужно было бы управлять файлом csv или .pp файл с конкретным оператором case - возможно ли это?

Электрический ток документация по типу файла ресурсов указывает, что вы можете сделать file{'/etc/my.cnf': source => [ "puppet:///mysql/etc/my.$hostname.cnf" , "puppet:///mysql/etc/my.cnf" ] }