puppet 变量覆盖失败

puppet 变量覆盖失败

我是 Puppet 的新手,遇到了一些问题,在 Google 上搜索了一段时间,但没有找到匹配的答案。我的问题如下:

我在 /etc/puppet/manifests/site.pp 中定义了全局变量 $puppetserver 如下所示:

case $domain {
    /domain2/:{
    $puppetserver = "puppetserver2"
    include migrate
    }
    default:{
    $puppetserver = "puppetserver3"
    }
}

在 manifests/labs/domain2/nodes.pp 中的 domain2 中的服务器节点定义中

node 'server1.domain2.com' {
    $puppetserver = "puppetserver3"
 }

其中migrate模块用于puppet的迁移,从网上找的如下:

在 modules/migrate/manifests/config.pp 中

class migrate::config  {
  if $puppetserver == undef {
    fail('You must define the targeted Puppet master to perform the migration')
  } 

  augeas { 'puppet.conf.migrate':
    context => '/files/etc/puppet/puppet.conf/main',
    changes => [
       "set server $puppetserver",
]
}

}

由于节点“server1.domain2.com”可以匹配 site.pp 中的 domain2 设置,因此它应用了迁移模块,它应该获取节点块中定义的 $puppetserver 的“puppetserver3”,然后由 Augeas 在“/etc/puppet/puppet.conf”中更新,但实际结果是:它被更新为 site.pp 中定义的 puppetserver2。我不明白为什么覆盖不起作用。您能帮忙检查一下哪里出了问题吗?

并进行测试:

当我尝试将“include migration”模块从 site.pp 移动到 nodes.pp 的节点“server1.domain2.com”{} 块时,它可以按预期工作。

相关内容