Как исправить ошибку "Не удалось выполнить синтаксический анализ для среды производства"?

Вот мой маленький фрагмент кода: когда я выполняю этот фрагмент, я получаю следующую ошибку:

ошибка: не удалось выполнить синтаксический анализ для создания среды: не удалось найти в /home/test.pp:8

$vendor = generate("/usr/bin/lsscsi")

if defined($vendor) {
    if $vendor =~ /LSI/{
        $d_multipath = [{
            vendor => 'LSI',
            product => 'INF-01-00',
            path_checker => 'rdac',
            path_selector => 'round-robin 0',
       }]
    }
}
else {
    notify {'faield-lsscsi':
        message  => "ERROR: failed to execute lsscsi to get the scsi vendor type",
        loglevel => critical,
    }
}

Может ли кто-нибудь, пожалуйста, помочь в указании?

4 ответа

Решение

По поводу ошибки Could not parse for environment productionВы можете проверить URL https://docs.puppetlabs.com/learning/manifests.html

Syntax Hints

Watch out for these common errors:

Don’t forget commas and colons! Forgetting them causes errors like Could not parse for environment production: Syntax error at 'mode'; expected '}' at /root/manifests/1.file.pp:6 on node learn.localdomain.

Capitalization matters! The resource type and the attribute names should always be lowercase.
The values used for titles and attribute values will usually be strings, which you should usually quote. Read more about Puppet’s data types here.

There are two kinds of quotes in Puppet: single (') and double ("). The main difference is that double quotes let you interpolate $variables, which we cover in another lesson.

Attribute names (like path, ensure, etc.) are special keywords, not strings. They shouldn’t be quoted.

Also, note that Puppet lets you use whatever whitespace makes your manifests more readable. We suggest visually lining up the => arrows, because it makes it easier to understand a manifest at a glance. (The Vim plugins on the Learning Puppet VM will do this automatically as you type.)

Для устранения неполадок и проверки файла манифеста (*.pp) вы можете запустить:

puppet parser validate test.pp

или вы можете установить puppet-lint ( http://puppet-lint.com/) за помощь, а также.

В-третьих, выясните, есть ли какие-то скрытые персонажи, которые могут создать проблему

Ошибка:

Ошибка: не удалось проанализировать для производства среды

всегда сопровождается другой ошибкой, например:

  • Синтаксическая ошибка в 'x': ожидается 'x' в manifest.pp:123

    Что может указывать на пропущенную запятую.

  • Не удалось найти в файле manifest.pp:123

    который может указывать на отсутствующую скобку.

Таким образом, вы должны проверить файл в конкретной строке, в которой сообщается об ошибке, чтобы убедиться, что в предыдущей строке отсутствуют запятые или скобки (что является наиболее распространенной ошибкой для такого рода ошибок).

Эта ошибка также появляется, когда на хосте есть повторяющаяся запись в файле node.pp. Если в файле несколько хостов, убедитесь, что для хоста есть одна запись.

Также проверьте наличие недостающих кавычек непосредственно перед точкой, в которой Puppet сообщает об ошибке.

Другие вопросы по тегам