Кукольный манифест выдает ошибку, когда ресурсы объявляются как абстрактные типы ресурсов

Я прочитал в puppet, что ресурсы также могут быть объявлены с использованием синтаксиса Resource[] в манифесте. Я написал ниже манифест, но он дает ошибку

Error: Could not parse for environment production: Syntax error at 'NO'; expected '}' at /etc/puppet/manifests/no.pp:3 on node pk-docker-01.cs1cloud.internal
Error: Could not parse for environment production: Syntax error at 'NO'; expected '}' at /etc/puppet/manifests/no.pp:3 on node pk-docker-01.cs1cloud.internal


file { '/var/NO/tmp' : ensure => directory,
}
Resource[User] {"NO":

    ensure => present ,
    password => 'admin@123',
}

group { no :
    ensure => present ,
}

Спасибо


person anonymous    schedule 03.09.2015    source источник
comment
Какую версию марионетки вы используете?   -  person Chris Pitman    schedule 03.09.2015
comment
кукольный --версия 3.8.2   -  person anonymous    schedule 03.09.2015


Ответы (2)


Документация, на которую вы ссылаетесь, предназначена для Puppet 4.2. Справочник по Puppet 3.8 можно найти здесь.

Тип объявления, который вы используете, не поддерживается в версии 3.8. В любом случае вам следует использовать стандартное объявление ресурса file{ 'dfsf': }, так как оно совместимо с другими версиями puppet.

person Chris Pitman    schedule 03.09.2015

Я проверил документацию Puppet 3.8 на наличие ресурсов и не вижу абстрактных ресурсов но это не значит, что этой функции не существует. При этом я также нашел следующую информацию и пример в типе ресурса данных страница. В версии 3.8 возможно, что типы ресурсов должны заключаться в строки в кавычках, как в следующем примере:

# A resource declaration using a resource data type:
File { "/etc/ntp.conf":
  mode  => "0644",
  owner => "root",
  group => "root",
}

# Equivalent to the above:
Resource["file"] { "/etc/ntp.conf":
  mode  => "0644",
  owner => "root",
  group => "root",
}

# A resource default:
File {
  mode  => "0644",
  owner => "root",
  group => "root",
}

Таким образом, вы можете попробовать следующее с вашим кодом и посмотреть, решит ли он проблему:

file { '/var/NO/tmp' : ensure => directory,
}
Resource["user"] {"NO":

    ensure => present ,
    password => 'admin@123',
}

group { no :
    ensure => present ,
}

Мой лучший совет — быть особенно осторожным при просмотре документации Puppet. Убедитесь, что вы всегда смотрите на версию, которую используете, когда планируете изменения в своей производственной среде, а не просто пытаетесь узнать о предстоящих функциях и т. д.

Надеюсь, это поможет!

person ccampanale    schedule 03.09.2015