在 Ansible 角色中,如何定义一个依赖于另一个变量的变量?
我正在设计一个角色,并希望它的界面能够理解一个剧本变量,比如framework_enable_java = yes
orframework_enable_java = mysql tomcat
并且想要编写一个vars/main.yml
定义布尔值的文件
framework_enable_java_core
framework_enable_java_mysql
framework_enable_java_tomcat
根据内容framework_enable_java
。我尝试了类似的明显定义
framework_enable_java_mysql: 'mysql' in framework_enable_java
以及几种或多或少微妙的方法,例如
framework_enable_java_mysql: {{ 'mysql' in framework_enable_java }}
或者
{% if 'mysql' in framework_enable_java %}
framework_enable_java_mysql: yes
{% else %}
framework_enable_java_mysql: no
{% endif %}
结果他们都没有工作。看起来相似的问题是不相关的,因为它更像是实现变量间接而不是变量推导。
是否有可能 vars/main.yml
为我的角色编写所需的内容?它会是什么样子?如果不可能,那么进行这些扣除的最佳方法是什么?(例如使用任务包括?)