如果使用Ruby中的RegEx语句(Chef recipe)

时间:2017-02-15 16:13:59

标签: ruby regex if-statement chef

我有一个厨师食谱,我试图说:

  

"如果服务器的主机名以-1结尾,则启用并启动newrelic-sysmond和newrelic-daemon服务,否则,禁用这些服务"

使用RegEx确定主机名是否以-1结尾。

使用下面的尝试,无论主机名是否以-1结尾,服务似乎都启用并启动。我对Ruby和Chef很陌生,所以如果我的代码不正确,我不会感到惊讶:

if node["hostname"] =~ /^.*-1$/
    service 'newrelic-sysmond' do
        action [ :enable, :start ]
    end
    service 'newrelic-daemon' do
        action [ :enable, :start ]
    end
else
    service 'newrelic-sysmond' do
        action [ :disable ]
    end
    service 'newrelic-daemon' do
        action [ :disable ]
    end
end

1 个答案:

答案 0 :(得分:0)

主机名有可能不是您的想法。您可能需要if node['machinename'] =~ /-1$/if node['machinename'].end_with?('-1')之类的内容。否则看起来没问题。