使用傀儡(3.6),我有以下ERB模板木偶ERB模板 - 你如何比較兩個整數
<% if @redis_port != ''%>
redis['port'] = <%= @redis_port %>
<% end %>
所需的行爲方式是,如果$redis_port
比nil
或空白其它任何東西,然後打印出。否則省略線
redis['port'] = 6379
$ redis_port在params.pp木偶清單
$ cat params.pp
class foobar::params {
$redis_port = nil #'6379'
}
$ cat init.pp
class foobar {
$redis_port = $foobar::params::redis_port
}
爲什麼ERB模板才能正常工作,如果$ redis_port是一個字符串定義?
我試過以下組合,但沒有運氣。
測試矩陣: ($ redis_port是params.pp,if語句是在ERB模板)
$redis_port = '6379' #Success
<% if @redis_port != ''%>
$redis_port = 6379 #Fail
<% if @redis_port != ''%>
$redis_port = 6379 #Fail
<% if @redis_port %>
$redis_port = 6379 #Fail
<% if scope['::foobar::redis_port'] %>
$redis_port = 6379 #Fail
<% if @redis_port != ''%>
$redis_port = 6379 #Fail
<% if @redis_port != nil %>
的puppetlabs資料顯示,我應該能夠簡單地查詢是否價值是零或不只是通過使用@redis_port。
http://docs.puppetlabs.com/guides/templating.html
其他資源
https://ask.puppetlabs.com/question/3420/if-else-statement-in-erb-template/
首先:在**清單**中執行'$ varname = nil'是有缺陷的,因爲'nil'在Puppet語言中沒有特殊含義。你得到字符串'「nil」'作爲一個值。你想要'$ varname = undef',但是要注意的是,如你所發佈的表格所示。 –
謝謝@FelixFrank您的評論引導我選擇正確的答案。我不得不使用undef。如果您發佈答案,我會接受它。 – spuder