如何在Puppet中将字符串转换为整数?


8

我想检查变量的内容是否为奇数。但是我需要一个整数。

$ip_array = split($ipaddress, '.')
$odd_ip = $ip_array[3] % 2

if $odd_ip == 1 {
  notice("is odd")
}

有没有简单的方法可以将字符串转换为整数?

Answers:



3

我已经开始在stdlib中使用scanf函数。

一个例子:

$ ram = scanf(“ $ {:: memorysize_mb}”,“%i”)

这需要木偶> = 3.7.5


1
请注意,这将返回一个数组,其中第一个元素是所需的值。在人偶4中可以编写诸如scanf(...)[0]之类的东西,在人偶3中似乎需要将其拆分为两个语句:首先分配给数组变量,然后获取第一个元素。
Slaven Rezic

根据puppet文档puppet.com/docs/puppet/latest/…,这也是可以接受的 。puppetlabs允许上面的@barry和此处的答案。
cgseller

1

您的代码将完全按照定义运行;Puppet隐式转换字符串和整数,以适合所使用的比较运算符。


我收到以下错误:无法在节点mynode.domain.de上的/etc/puppet/modules/my/manifests/target.pp:23处匹配%
MMore 2012年

如果我代替“%”与“*”(测试) - > *的左操作数是不是在节点mynode.domain.de一批在/etc/puppet/modules/my/manifests/target.pp:25
MMore

1
啊。您在Puppet中发现了一个真正的错误。您应该在projects.puppetlabs.com/projects/puppet/issues/new上提交票证,以便我们进行修复。
丹尼尔·皮特曼

2
当值来自hiera时,Puppet不会这样做。您收到“错误400在服务器上:比较Fixnum与字符串失败”错误。
罗布

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.