2017-12-01 10 views
0

Ansible 2.3.1.0에서 변수가 선택되지 않는 이유를 찾을 수 없습니다.Ansbile에서 변수를 전달하는 방법은 무엇입니까?

파일 구조 :

. 
├── ansible.cfg 
├── group_vars 
│   └── test1.yml 
├── hosts 
├── host_vars 
│   └── test1 
├── roles 
│   └── install 
│    └── tasks 
│     └── main.yml 
├── testing.retry 
└── testing.yml 

group_vars/test1.yml :

--- 
test_var: "This is from host_vars file" 

content of host_vars/test1 :

--- 
test_var: "This is from host_vars file" 

내용 roles/install/tasks/main.yml의 :

--- 

- name: Debug 
    debug: var=test_var 
012 3,516,

결과는 다음과 같습니다 당신이 test1라는 그룹이 없기 때문에

test_var = This is from host_vars file 
+0

답변이 비슷할 수 있습니다. 제목은 분명하지 않았습니다. 그래도 고마워! Ansbile에서 변수를 전달하는 방법은 무엇입니까? 훨씬 낫다 !!!! –

답변

0
  1. Ansible이 group_vars/test1.yml를 읽고되지 않습니다

    ansible-playbook -i hosts testing.yml 
    
    PLAY [This is testing] ***************************************************************************************************************************************************** 
    
    TASK [Gathering Facts] ***************************************************************************************************************************************************** 
    ok: [localhost] 
    
    TASK [install : Debug] ***************************************************************************************************************************************************** 
    ok: [localhost] => { 
        "test_var": "VARIABLE IS NOT DEFINED!" 
    } 
    
    PLAY RECAP ***************************************************************************************************************************************************************** 
    localhost     : ok=2 changed=0 unreachable=0 failed=0 
    

    출력을 기대합니다.

    그룹에 대해 group_vars를 정의하지 않으려면 all으로 지정해야하므로 파일 이름은 group_vars/all.yml이어야합니다.

  2. 호스트 이름이 test1이 아니기 때문에 host_vars/test1을 읽을 수 없습니다.

    localhost에 대해 host_vars를 정의하지 않으려면 localhost으로 지정해야합니다. 따라서 파일은 host_vars/localhost.yml이어야합니다.