Variables 在ansible中,如何从另一个变量初始化变量?
在Ansible角色中,如何根据另一个变量定义变量 我正在设计一个角色,希望它的接口能够理解playbook变量,比如framework_enable_java=yes或framework_enable_java=mysql tomcat,并希望编写一个定义布尔值的vars/main.yml文件Variables 在ansible中,如何从另一个变量初始化变量?,variables,ansible,ansible-role,Variables,Ansible,Ansible Role,在Ansible角色中,如何根据另一个变量定义变量 我正在设计一个角色,希望它的接口能够理解playbook变量,比如framework_enable_java=yes或framework_enable_java=mysql tomcat,并希望编写一个定义布尔值的vars/main.yml文件 framework_enable_java_core framework_enable_java_mysql framework_enable_java_tomcat 根据框架的内容启用java。我尝
framework_enable_java_core
framework_enable_java_mysql
framework_enable_java_tomcat
根据框架的内容启用java。我尝试了与之类似的显而易见的定义
framework_enable_java_mysql: 'mysql' in framework_enable_java
还有一些或多或少微妙的方法,比如
framework_enable_java_mysql: {{ 'mysql' in framework_enable_java }}
或
结果没有一个人在工作。与此无关,因为它更像是实现变量间接寻址,而不是变量推断
是否可以为我的角色编写所需的vars/main.yml?看起来怎么样?如果不可能,进行这些扣减的最佳方式是什么?e、 g.使用任务包括?从评论中回答:
framework_enable_java_mysql: "{{ 'mysql' in framework_enable_java }}"
双引号在这里很重要,因为否则YAML解析器会尝试构造一个对象字典而不是模板化变量。framework_enable_java_mysql有什么问题:{framework_enable_java}中的{“mysql”}除了缺少引号之外?@KonstantinSuvorov使用引号,效果很好。谢谢
framework_enable_java_mysql: "{{ 'mysql' in framework_enable_java }}"