Puppet 使用端口验证 IP 地址的查找,例如 1.2.3.4:5678

Puppet validate lookup of ip address with port eg 1.2.3.4:5678

我在 Puppet 清单中作为顶级范围变量执行查找,查找将包含串联 IP 地址和端口的值,例如 1.2.3.4:5678。

我知道我可以通过以下方式对 IP 地址或端口进行验证:

Stdlib::IP::Address::V4 $server = lookup(profiles::something::server)

Stdlib::Port $server = lookup(profiles::something::server)

但是,我想同时验证两者,例如

String[[Stdlib::IP::Address::V4]:[Stdlib::Port]] $server = lookup(profiles::something::server)

但是,除了在清单中拆分它们并执行在线验证之外,我找不到其他方法。

有没有办法对顶级范围变量进行组合查找验证?

您展示的验证值形式的方法依赖于 puppetlabs-stdlib 模块中定义的数据类型别名。如果没有适合您的别名,那么您总是可以在您控制的某个模块中为此写一个完整的 type expression for what you want. In that event, I would recommend also defining a type alias,因为合适的别名比复杂类型表达式更容易理解。您可以查看 stdlib 中定义的类型别名来帮助自己前进。