Пытаюсь автоматизировать некоторые задачи при получении нового сервера. Первым делом нужно добавить несколько репозиториев yum.
Мой /etc/puppet/modules/repo/manifests/init.pp
:
1 class repo {
2 file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL":
3 owner => root,
4 group => root,
5 mode => 0644,
6 source => "puppet:///repo/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL"
7 }
8
9 yumrepo {
10 "epel":
11 descr => 'the epel repo',
12 mirrorlist => 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch',
13 enable => 1,
14 gpgcheck => 1,
15 gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL",
16 require => File["/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL"]
17 }
18 }
Синтаксис ОК при проверке с puppet parser validate
.
но я получил ошибку ниже при подключении марионеточного агента:
# puppet agent --no-daemonize --verbose
notice: Starting Puppet client version 2.7.1
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter enable at /etc/puppet/modules/repo/manifests/init.pp:17 on node svr051-4170
notice: Using cached catalog
err: Could not retrieve catalog; skipping run
notice: Caught INT; calling stop
Как видите, строка 17 - это закрытая фигурная скобка. Я действительно не понимаю, в чем проблема. Любая помощь будет оценена по достоинству.
"Включить" на самом деле не является допустимым параметром для ресурс yumrepo. Это называется «enable_d_».
Причина, по которой он подавляется фигурной скобкой, заключается в том, что это конец этого раздела. Я не знаю подробностей того, как Puppet анализирует файлы, но я предполагаю, что Puppet захватывает все параметры во время синтаксического анализа и обрабатывает их вместе, поэтому он не знает о проблеме, пока парсер не покинет раздел.
Быстрое предположение, что это как-то связано с $ или & в строке зеркального списка, попробуйте добавить \ перед ними и посмотрите, что произойдет