使用 puppet 添加 yum repo-服务器上出现错误 400:花括号中启用的参数无效?

使用 puppet 添加 yum repo-服务器上出现错误 400:花括号中启用的参数无效?

我尝试在收到新服务器时自动执行一些任务。第一件事是添加一些 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 代理时出现以下错误:

# 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 行是右花括号。我真的不明白问题出在哪里。任何帮助都将不胜感激。

答案1

“启用”实际上不是有效的参数yumrepo 资源。它被称为“enable_d_”。

它卡在花括号里的原因是它是该部分的结尾。我不知道 Puppet 如何解析文件的具体细节,但我的猜测是 Puppet 在解析过程中抓取了所有参数并将它们一起处理,因此直到解析器离开该部分时它才知道有问题。

答案2

快速猜测是它与镜像列表行中的 $ 或 & 有关,尝试在它们前面添加 \ 并看看会发生什么

相关内容