【发布时间】:2016-03-24 10:21:11
【问题描述】:
我是 ruby 新手,正在编写一个可通过 Foreman 访问的 puppet 模块。
我编写它是为了供 Foreman 的智能类参数使用,以便可以从 Foreman Web 控制台对其进行配置。
我试图了解如何为设备可能具有的 48 个可能端口创建参数。而不是手动输入端口,我想知道是否可以动态执行此操作。
例如,而不是这个:
class ciscobaseconfig (
$interface_description_lan = 'A LAN interface'
) {
interface {
'FastEthernet 0/1':
description => $interface_description_lan
}
interface {
'FastEthernet 0/2':
description => $interface_description_lan
}
}
我想这样做:
class ciscobaseconfig (
$interface_description_lan = 'A LAN interface',
) {
interface {
(0..48).each do |i|
"FastEthernet 0/#{i}":
description => $interface_description_lan
end
}
}
根据评论者的建议,我尝试了这个,但它不起作用:
class ciscobaseconfig (
$interface_description_lan = 'A LAN interface',
) {
arrInterfaces = Array(1..48)
arrInterfaces.each{
interface {
|intNum| puts "FastEthernet 0/#{intNum}":
description => $interface_description_lan
}
}
}
【问题讨论】:
-
==>> arr = Array(1 .. 10) =then=> arr.each { |x|放“wadupp#{x}”}
-
这不是我正在做的事情吗?一个完整的例子会是什么样子?
-
删除了 [ruby] 标签,因为它比与此问题相关的更令人困惑。
-
抱歉,我对 ruby 和 puppet 还很陌生,所以不确定是 ruby 问题还是 puppet DSL 问题
标签: puppet theforeman