puppet - 木偶清单:覆盖哈希中的默认变量
问题描述
我收到了由其他人编写的 Puppet 模块的代码。我的任务是让它在实际的 Puppet 环境中工作。
我正在努力覆盖manifest
文件中模块中的默认值。希望这是一个语法问题,而不是 init 类的问题。
在init.pp
:
class our_module(
# Defaults to be overridden in the manifest file
Hash $config = {
'id' => '38e18a',
'secret' => 'donttellanyone',
'path' => '/test/path'
}
){
# Logic here...
}
如何覆盖这些属性?我尝试了以下方法,这给了我一个InvalidCredentialsException
:
node 'my_node' {
class { 'our_module':
config => {
id => 'newid',
secret => 'newsecret',
path => '/newpath
}
}
我是 Puppet 的新手,仍然对文档和语法有所了解。
解决方案
给定our_module
问题中提出的类,节点块的这种变体对于声明该类和自定义其config
参数是有效的:
node 'my_node' {
class { 'our_module':
config => {
id => 'newid',
secret => 'newsecret',
path => '/newpath'
}
}
}
希望这是一个语法问题,而不是 init 类的问题。
如果您真正使用的格式与上述相同,那么很抱歉不得不告诉您问题不在于您的类声明。如果您的 Puppet 对未声明 class 的节点运行成功our_module
,那么我的结论是问题确实出在类实现上。
我尝试了以下方法,这给了我一个
InvalidCredentialsException
我不愿意认为这是在目录构建过程中出现的。我不能完全排除这种可能性,但这确实看起来像一个 Java 异常,而目录构建器主要是在 Ruby 中实现的。它可能来自puppetserver
Puppet 基于 Java 的服务器前端,但这并不取决于您的清单是否声明了特定的类。我的水晶球表明,当它应用于客户端时,该our_module
实现是Exec
一个 Java 程序,并且正是该程序引发了异常。
其中一些可能性可能与错误的类参数数据有关,但我看不出有任何理由认为问题是由语法错误引起的。
推荐阅读
- php - 如何根据 PHP 中的数据库表值更改按钮颜色?
- pytorch - 令牌索引序列长度大于此模型指定的最大序列长度 (28627 > 512)
- javascript - 如果页面上没有确认按钮(webdriver io)如何检查搜索引擎并通过匹配确认结果
- javascript - 如何为“填充”功能请求“喜欢”
- r - Makevars 文件是否需要在 ~/.R 文件夹中才能成功编译包?
- mongodb - 如何确保用户购买了一些设备?
- c - 二维未声明数组的行大小
- npm - 如何解决 NPM 问题?遇到 npm 启动错误
- vue.js - 在 Vue 中动态导入 fontawesome 图标
- django - django 不在 html 中呈现模板,而是在浏览器上呈现普通文本文件