Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 在ansible中,如何从另一个变量初始化变量?_Variables_Ansible_Ansible Role - Fatal编程技术网

Variables 在ansible中,如何从另一个变量初始化变量?

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。我尝

在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_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 }}"