2017-06-05 70 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

現在感謝它的工作。這是一個愚蠢的錯誤 –