2017-10-20 112 views
-1

尽量实现一些类似这样的内部服务器描述host_vars/MT_ora/server_vars.yml重用ansible变量会导致错误

ora: 
    home: /u01/app/oracle/product/11.2.0/112048 
    sid: blank 
    enviroment: 
    ORACLE_HOME: "{{ora.home}}" 
    ORACLE_SID: "{{ora.sid}}" 

,但得到的错误:

recursuve loop detected in template

是否有一些漂亮的方法来重用变量?

回答

0

您不能在Jinja2表达式中进行递归。你想
拆分信息的不同变量之间的重用:

ora: 
    home: /u01/app/oracle/product/11.2.0/112048 
    sid: blank 
enviroment: 
    ORACLE_HOME: "{{ora.home}}" 
    ORACLE_SID: "{{ora.sid}}" 

这里有oraenviroment类型的字典。并且要定义environment中的某些值,请参阅ora

但是在您的原始示例中,您尝试使用ora本身来定义ora中的值。