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

Атрибуты ресурса модуля марионетки

Есть ли способ распечатать значение атрибута в модуле марионетки? Например, если у вас есть файловый ресурс:

file {'myfile':
      path => '/this/is/my/path',
      ensure => present,
      owner => 'someuser',
      group => 'somegroup'
}

вы можете распечатать значение атрибута «путь»? Возможно, с помощью уведомления?

notify {"the value of path is: " __________}

Нет, если вы передадите свои атрибуты как буквальные строки.

Однако вы можете повторно использовать атрибут, если назначите его переменной. Пример:

$file_path = '/this/is/my/path'

file { 'myfile':
  path   => $file_path,
  ensure => present,
  owner  => 'someuser',
  group  => 'somegroup'
}

notify { "the value of path is: ${file_path}": }

Обратите внимание на последнее двоеточие, которое разделяет имя ресурса и параметры (в этом случае их нет, поэтому ресурс просто завершается). В notify выше также может быть записано как это (ссылка):

notify { 'my_notify':
  message =>  "the value of path is: ${file_path}",
}

Также обратите внимание на правильное использование одинарных и двойных кавычек. Согласно Puppet Lint, двойные кавычки следует использовать только тогда, когда строка содержит интерполированную переменную, и такие переменные должны быть заключены в фигурные скобки.