puppet - 如何从基于 Ruby 的自定义类型的清单中实例化定义的类型?
问题描述
我正在用 Ruby 编写自定义 Puppet 资源类型,并希望使用来自另一个模块的类型。这种其他类型在 Puppet 代码中定义。
从文档中,我可以做到:
Puppet::Type.type(:file).new(file_opts)
这适用于 ruby 中定义的类型,但不适用于.pp
文件中定义的类型
define sysctl (){...}
这是基本的 Ruby 类型定义。我generate
最终会在我的自定义资源旁边添加一个额外的资源。这就是type(:file)
上面示例的工作方式:
Puppet::Type.newtype(:network_interface) do
ensurable
newparam(:name) do
isnamevar
desc 'The name of the physical network device'
end
def create
end
def generate
[Puppet::Type.type('sysctl').new(
name: "net.ipv4.conf.eth1.promote_secondaries",
value: 1
)]
end
end
我收到此错误:
Network_interface[eth1]: Failed to generate additional resources using 'generate': undefined method `new' for nil:NilClass
我已经深入研究了 Puppet 代码以尝试了解 Puppet 如何从define
表单创建类型,但没有运气。
解决方案
推荐阅读
- javascript - Javascript - 观看视频后更改 CSS
- reactjs - 带有 React 钩子形式的 Antd 表单
- linux - 此列中的“1”是什么“drwxr-xr-x 1 bash bash 4.0K Dec ...”
- c# - 我正在更新我的 nuget 包,但它们没有更新并不断给出错误
- spring-boot - 如何使用 Spring Boot 将 Log4j 添加到 maven 项目
- apache-kafka - Kafka Streams EOS 模式 - 通知关闭
- python - 求生成器的长度或是否有元素
- python - 如何将客户端 ipv6 /ipv4 ip 地址与服务器 ipv6 地址一起使用。?
- mysql - 在 SQL 中合并同一日期事务
- elixir - 引发错误时在堆栈跟踪中包含函数参数