2017-06-05 34 views
2

我是一个新世界。试图从json文件提供所有变量,但它不接受。它显示与错误变量未定义json文件中的可变阅读变量

下面

是我的JSON文件

{ 
    "Tomcat":{ 
     "SHPN":"8905", 
     "HTPN":"8980", 
     "SSPN":"8943", 
     "AJPN":"8909", 
     "Server":"test.example.com", 
     "JENKINS_HOME":"/apps/tech/jenkins/jenkins-configuration", 
     "PName":"Tomcat-Installation", 
     "IName":"ansible_test", 
     "IUID":"jbosscfg", 
     "IGID":"staff", 
     "IDEPT":"tech", 
     "IRECPT":"[email protected]" 
    } 
} 

下面是我的剧本

--- 
- 
    gather_facts: false 
    hosts: "{{Server}}" 
    tasks: 
    - 
     ignore_errors: true 
     name: "find no of Tomcat Instance available on the Server" 
     copy: 
     src: "{{ JENKINS_HOME }}/workspace/{{ PName }}/instance/" 
     dest: /apps/tech/{{IName}} 
     group: "{{IGID}}" 
     owner: "{{IUID}}" 
     mode: 0755 
    - 
     replace: "dest='/apps/tech/{{IName}}/scripts/set_env.sh' regexp='<DEPARTMENT NAME>' replace='{{IDEPT}}'" 
    - 
     replace: "dest='/apps/tech/{{IName}}/scripts/set_env.sh' regexp='<RECIPIENT>' replace='{{IRECPT}}'" 
    - 
     replace: "dest='/apps/tech/{{IName}}/scripts/set_env.sh' regexp='<TOMCAT INSTANCE NAME>' replace='{{IName}}'" 
    - 
     replace: "dest='/apps/tech/{{IName}}/scripts/set_env.sh' regexp='<USER ID>' replace='{{IUID}}'" 
    - 
     name: "Ansible Template Example" 
     template: 
     src: tomcat_server.j2 
     dest: /apps/tech/{{IName}}/conf/server.xml 
     mode: 0777 

我是下面在执行ansible剧本 - 错误说变量未定义

test.example.com:~/final:$ ansible-playbook configure-tomcat-instance.yml --extra-vars "@test.json" 
ERROR! the field 'hosts' has an invalid value, which appears to include a variable that is undefined. The error was: 'Server' is undefined 

The error appears to have been in '/home/jbosscfg/final/configure-tomcat-instance.yml': line 3, column 3, but may 
be elsewhere in the file depending on the exact syntax problem. 

The offending line appears to be: 

- 
    gather_facts: false 
^here 

回答

0

你把变量看作是在顶层,而它们是undefined r Tomcat键。

使用hosts: "{{Tomcat.Server}}"或重新格式化您的json文件以消除Tomcat级别。

+0

现在感谢它的工作。这是一个愚蠢的错误 –