在我的剧本中,我有这个:
#More things
- include: deploy_new.yml
vars:
service_type: "{{ expose_service == 'true' | ternary('NodePort', 'ClusterIP') }}"
when: service_up|failed
Run Code Online (Sandbox Code Playgroud)
如果expose_service是,我想service_type设置为"NodePort",否则设置为"ClusterIP".
但是,在所有情况下service_type都设置为False.
我究竟做错了什么?
Héc*_*tor 31
解决了!
service_type: "{{ 'NodePort' if expose_service == 'true' else 'ClusterIP' }}"
Run Code Online (Sandbox Code Playgroud)
tec*_*raf 17
在您的示例中,您将三元过滤器应用于'true'字符串.实际上,您将比较expose_service字符串 的值'NodePort'并始终获得false结果.
您需要将相等运算符子句括在括号中:
- include: deploy_new.yml
vars:
service_type: "{{ (expose_service == true) | ternary('NodePort', 'ClusterIP') }}"
when: service_up|failed
Run Code Online (Sandbox Code Playgroud)
在这个答案中解决了另外两点:
'true'而不是布尔值when指令是在错误的缩进级别(你有效地传递被调用的变量when)| 归档时间: |
|
| 查看次数: |
15862 次 |
| 最近记录: |