木偶条件语句语法错误

puppet conditional statement syntax error

我已经检查了官方 puppet documentation,语法看起来不错,但我仍然遇到语法错误。 有人可以检查一下问题是什么吗?

我正在使用 Puppet 服务器 3.8。

class puppet {
  if $puppet_conf == 'default' {
  }
  elseif $puppet_conf == undef {
    file { '/etc/puppet/puppet.conf':
      ensure => present,
      owner  => "root",
      group  => "root",
      mode   => "644",
      source => "puppet:///modules/puppet/puppet.conf}",
      notify => Exec['puppet-restart'],
    }

    exec { 'puppet-restart':
      command     => '/usr/bin/touch /tmp/.puppet-restart',
      refreshonly => true,
    }
  }
  else {
    file { '/etc/puppet/puppet.conf':
      ensure => present,
      owner  => "root",
      group  => "root",
      mode   => "644",
      source => "puppet:///modules/puppet/${puppet_conf}",
      notify => Exec['puppet-restart'],
    }

    exec { 'puppet-restart':
      command     => '/usr/bin/touch /tmp/.puppet-restart',
      refreshonly => true,
    }
  }
}

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Syntax error at '=='; expected '}' at /etc/puppet/modules/puppet/manifests/init.pp:6 on node

Puppet DSL 中没有 elseif 条件。您需要改为 elsif 。查看此处的文档以获取更多信息:https://docs.puppet.com/puppet/3.8/lang_conditional.html#syntax.