Кукольный класс с параметром

508
Tim Holum

Я пытаюсь получить класс кукол с параметрами, вот что я пытался

class testing ( String $file = 'testing' ) { file { "/tmp/$file": ensure => present, mode => 0777, content => "Testing123" } } 

Когда я запускаю это, я получаю ошибку:

Could not parse for environment production: Syntax error at 'String'; expected ')' 
0
Не эксперт здесь, но, глядя на документацию марионеток и сообщение об ошибке, может быть, вам нужно убрать символ пробела между открытой скобкой и «String». Вот единственное синтаксическое различие, которое я вижу между этим и примером документации Puppetlabs. davidgo 8 лет назад 0
Какую версию кукол вы используете? daxlerod 8 лет назад 0

1 ответ на вопрос

2
daxlerod

Похоже, вы используете версию Puppet старше 4.0 и не используете парсер 'future'. Типы данных были добавлены с новой версией языка кукол.

У вас есть 3 варианта:

  1. Удалить String. Даже в конфигурациях, где разрешено объявление типа данных, это необязательно. Внутри вашего класса вы можете использовать функцию для проверки того, что параметр является строкой.
  2. Включить будущий парсер. Это делается в вашем конфигурационном файле puppet, и вы можете обнаружить, что ваш другой код несовместим.
  3. Обновление до версии 4.x кукольный. Это также может привести к несовместимости с остальной средой.

Если бы это был я, я бы сделал # 1.

Похожие вопросы