人偶比较 erb 模板中的字符串
puppet compare string in the erb template
我们有木偶版本 3.8.7。我知道 return dovecot 的版本:2.2 或 2.3。在 erb-template 中,我有下一个结构:
# SSL/TLS protocols to use
111 <% if @dovecot_version =~ "2.2" -%>
112 ssl_protocols = !SSLv2 !SSLv3
113
114 # Diffie-Hellman parameters length
115 ssl_dh_parameters_length = 2048
116 <% else -%>
117 ssl_min_protocol = SSLv3
118
119 # Diffie-Hellman parameters length
120 #ssl_dh_parameters_length = 2048
121 <% end -%>
应用后我看到下一条错误消息:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template cpanel/dovecot.conf.erb:
Filepath: org/jruby/RubyString.java
Line: 1730
Detail: type mismatch: String given
at /etc/puppet/environments/testing/modules/cpanel/manifests/dovecot.pp:34 on node server1.development.local
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
变量类型有什么问题?我如何比较字符串?感谢您的回答
Ruby 的 =~
运算符用于将字符串与正则表达式匹配。操作数可以按任一顺序出现,但必须是正则表达式。在你的例子中,两者都是字符串。
要比较字符串是否相等,请使用普通的 ==
或 !=
运算符。
我们有木偶版本 3.8.7。我知道 return dovecot 的版本:2.2 或 2.3。在 erb-template 中,我有下一个结构:
# SSL/TLS protocols to use
111 <% if @dovecot_version =~ "2.2" -%>
112 ssl_protocols = !SSLv2 !SSLv3
113
114 # Diffie-Hellman parameters length
115 ssl_dh_parameters_length = 2048
116 <% else -%>
117 ssl_min_protocol = SSLv3
118
119 # Diffie-Hellman parameters length
120 #ssl_dh_parameters_length = 2048
121 <% end -%>
应用后我看到下一条错误消息:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template cpanel/dovecot.conf.erb:
Filepath: org/jruby/RubyString.java
Line: 1730
Detail: type mismatch: String given
at /etc/puppet/environments/testing/modules/cpanel/manifests/dovecot.pp:34 on node server1.development.local
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
变量类型有什么问题?我如何比较字符串?感谢您的回答
Ruby 的 =~
运算符用于将字符串与正则表达式匹配。操作数可以按任一顺序出现,但必须是正则表达式。在你的例子中,两者都是字符串。
要比较字符串是否相等,请使用普通的 ==
或 !=
运算符。