ruby - 厨师食谱模板正则表达式匹配
问题描述
我有一个模板文件
#fileName: test.properties.erb
<% if @env == 'STAGING' && node['hostname'] =~ /^staging/ %>
somekey=node['hostname']
<% else %>
somekey=defaultNode
<% end %>
我的食谱如下
template ("test.properties") do
source 'test.properties.erb'
variables(
env: "STAGING"
)
end
我想与 REGEX 检查一起执行 && 操作
当我在 erb 文件中使用以下内容时,它适用于 &&
<% if @env = 'STAGING' && node['hostname'].include?('staging-01') %>
...
我想应用一个正则表达式并检查主机名是否以字符串开头staging
说我有staging-01
,staging-02
并适用于两者
解决方案
答案似乎是简单的 Ruby 字符串匹配表达式
所以我对表达式进行了更改node['hostname'].match(/staging*/)
,这成功地评估了食谱。
#fileName: test.properties.erb
<% if @env == 'STAGING' && node['hostname'].match(/staging*/) %>
somekey=node['hostname']
<% else %>
somekey=defaultNode
<% end %>
推荐阅读
- python-3.x - 如何在 Python 3.8 中使用 TLS 1.0?
- shell - 鱼中有多行注释吗?
- javascript - 如何删除重复行中 hr 的最后一个孩子?
- epplus - EPPlus 不触发现有公式
- mysql - 如何根据从数据库读取的 Entity Core MVC 模型值在视图上打印不同的值
- amazon-web-services - 复制不同区域存储桶中的 S3 对象
- java - java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 android 中微调器的异常
- sql - 对 Clickhouse 的 SQL 请求:选择 JSON 数组中是否存在值
- c# - 为什么 PrincipalSearcher 为属性 msExchRecipientDisplayType 提供 System.__ComObject?
- sql - 外部和联合都在同一张桌子上?