木偶:如何写出正确的“条件和状况”声明?

木偶:如何写出正确的“条件和状况”声明?

我编写了一个“每日消息” Puppet 模块,该模块会影响我公司的所有代理服务器。在模板文件中,我有以下“if 语句”:

<% if @hostname !~ /^haproxy\d+/ and @hostname =~ /proxy\d+/ -%>
if [ "$(cat $LBMEMFILE)" = "0" ]; then
echo -e "\e[35m Membeship in LB:  Yes"
elif [ "$(cat $LBMEMFILE)" = "2" ]; then
echo -e "\e[35m Membeship in LB:    No $LISTMEMFILE"
fi
<% end -%>

它的意义:

如果主机名是 proxy0-100 而不是 ^haproxy0-100,则在 motd 脚本中添加一行。

但由于某种原因,该语句不起作用。

我也尝试过使用“除非”,但无济于事。

如果我删除第一行中“and”后面的语句,它就会像魔法一样起作用。

这是我收到的错误:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `empty?' for nil:NilClass at /etc/puppet/environments/production/manifests/site.pp:1 on node haproxy02.company.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

我究竟做错了什么?

提前致谢

答案1

我找到了问题所在...文件中有一个多余的空格.yaml导致了错误。谢谢你的帮助。

相关内容