Puppet如何判断是否设置了变量

时间:2017-07-25 17:52:16

标签: puppet

在木偶课中,如何测试变量是否已设定?现在我只是检查变量是否未定义:

if $http_port != undef {
  $run_command = "$run_command --http-port $http_port"
}

有没有更好的方法来检查变量是否已被声明?

1 个答案:

答案 0 :(得分:5)

如果您正在测试变量是否为undef,那么您的方法是正确的。写

XAUTHORITY=/home/pi/.Xauthority

会完成几乎相同的事情。如果$ http_port为undef或false,则不会运行该命令。

如果你想测试var是否已定义,你应该这样做:

{
"d": {
    "__count": "4",
    "results": [
        {
            "ID": "1234",
            "FID": "00145E9279201EE799E3027FBE864F24",
            "FName" : "Header"
            "Sequence": 0,
            "Values": {
                "results": [
                    {
                        "ID": "321",
                        "Value": "FChild",
                    },
                     {
                        "ID": "321",
                        "Value": "FChild",
                    }
                ]}
                }]
                }
                }

请参阅https://docs.puppet.com/puppet/4.10/function.html#defined

如果var是一个类变量,你可以这样做:

if $http_port {
  $run_command = "$run_command --http-port $http_port"
}

如果声明该类的http_port设置为0到65535之间的整数,它将只运行notify。