syntax-error - Puppet:语法错误, '$x.each...'

标签 syntax-error each puppet

我有以下代码:

define keepalived::vrrp_instance(
  $state,
  $interface,
  $virtual_addresses,
  $virtual_router_id,
  $priority      = $::keepalived::params::priority,
  $advert_int    = $::keepalived::params::advert_int,
  $password      = $::keepalived::params::password,
  $notify_master = $::keepalived::params::notify_master,
  $notify_backup = $::keepalived::params::notify_backup,
  $notify_fault  = $::keepalived::params::notify_fault,
  $notify_all    = $::keepalived::params::notify_all,
  $smtp_alert    = $::keepalived::params::smtp_alert,
) {
  ...
  $virtual_addresses.each |$address| {
    $splitted_address = split($address,' ')
    if  !is_ip_address($splitted_address[0]) {
      fail("Error virtual_address Value: \"${address}\" not an ip address!")
    }
  }
  ...
}

$virtual_addresses 类似于 ['127.0.0.1 dev eth0','fd00::1 dev eth0']

运行代码时出现以下错误:

Syntax error at '.'; expected '}' at /etc/puppet/environments/ip6_dev/modules_custom/keepalived/manifests/vrrp_instance.pp:136 on node

第 136 行是“$virtual_addresses.each |$address| {”

我找不到错误( https://docs.puppetlabs.com/references/3.stable/function.html#each )

我使用的是 Puppet 3.3.2

最佳答案

"note requires parser = future"

确保您在 puppet 中使用 future 的解析器。 在 puppet.conf 文件中设置 parser = future 或添加命令行开关 --parser=future

更新: 包装您的验证功能:

define verify::wrapper ()
{
    $ip_address = split($name,' ')
    if  !is_ip_address("${ip_address[0]}") {
        fail("Error virtual_address Value:  \"${ip_address[0]}\" not an ip address!")
    }
}

接下来使用它:

define keepalived::vrrp_instance(...)
{
    ...
    verify::wrapper{ $virtual_addresses : }
    ...
}

关于syntax-error - Puppet:语法错误, '$x.each...',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31242451/

相关文章:

python - Python列表,列表项中间有空格

c++ - std::numeric_limits::max 的语法错误

Javascript 错误对象数组出现意外的新标记

jquery - 成功 getJSON 操作后 data.length 未定义

ruby-on-rails - 在 Ruby 中访问数组中的数据

c - 编译时出错 : "invalid operands to binary/(have ‘short int *’ and ‘int’ )"

javascript - 回调函数和 jQuery 的 every 迭代器

puppet - 如何检查 Puppet Enterprise 服务器/主服务器是否已安装并正常工作?

vagrant - 如何将 Puppetfile 更新为 API URL v3?

gitlab - 更改存储库后,Puppet 不更新包