puppet 类没有从 site.pp 节点定义继承变量

puppet 类没有从 site.pp 节点定义继承变量

我有以下木偶设置(非常简单):

/etc/puppet/manifests/site.pp:

node 'node.my.domain' {
  $nodeclass = 1
  notify { "(INFO) nodeclass = $nodeclass": }

  class { "foobar": }
}

/etc/puppet/modules/foobar/manifests/site.pp:

class foobar {
  notify { "(INFO) in foobar: nodeclass = nodeclass": }
}

在 上node.my.domain,我运行:

node# puppet agent -t

我收到以下输出:

信息:检索插件信息
信息:正在检索插件
信息:正在加载事实
信息:node.my.domain 的缓存目录
信息:应用配置版本“1496349702”
注意:(INFO)nodeclass =
通知:/Stage[main]/Foobar/Notify[(INFO) in foobar: nodeclass = ]/message: 将“message”定义为“(INFO) in foobar: nodeclass = '
通知:目录运行完毕,剩余 0.50 秒

ie$nodeclass为空。如何从类中正确访问节点范围变量?

答案1

范围级继承已经过时,应该用类参数代替。另外,您的目录结构是错误的。

/etc/puppetlabs/code/manifests/site.pp

node 'node.my.domain' {
  $nodeclass = 1
  notify { "(INFO) nodeclass = ${nodeclass}": }

  class { "foobar":
    nodeclass => $nodeclass,
  }
}

/etc/puppetlabs/code/modules/foobar/manifests/init.pp

class foobar(
  $nodeclass,
){
  notify { "(INFO) in foobar: nodeclass = ${nodeclass}": }
}

相关内容