2017-03-29 3 views
-3

나는 가능한 한 POST 요청을해야합니다. 내가 얻을, 그것을 실행가능 : 사용 설명서에 hosts.ini의 호스트 주소를 사용하십시오.

- hosts: worker1 

    tasks: 
    - name: inizialize worker           
    uri: 
     url: "http://{{ worker1 }}:8080/xxx/yyy" 
     method: POST 
     user: admin 
     password: password 
     force_basic_auth: yes 
     return_content: yes 
     body: "field=myfield" 

그러나 :

[workers] 
worker1 ansible_host=111.111.111.111 
worker2 ansible_host=222.222.222.222 

내가 요구에 worker1에의 IP 주소를 연결해야하는 URL을, 그래서 나는 나의 각본을 썼다 :

hosts.ini 파일입니다 :

필드 'args'의 값이 잘못되었습니다.이 값에는 정의되지 않은 변수가 포함되어 있습니다. 오류 : 'worker1'이 정의되지 않았습니다.

어디에서 문제가 발생합니까?

답변

0

worker1이라는 변수가 정의되어 있지 않습니다. 당신이 111.111.111.111으로 값을 대체하고 싶었

, 당신은 magic variables 사용해야합니다

url: "http://{{ hostvars['worker1']['ansible_host'] }}:8080/xxx/yyy" 

을하지만, 전체 플레이를 고려, 당신은뿐만 아니라 원 수 :

url: "http://{{ ansible_host }}:8080/xxx/yyy" 

마음이 귀하의 인벤토리 파일은 workers이라는 호스트 그룹을 정의하고 귀하의 플레이는 worker1이라는 호스트 그룹을 나타냅니다. 이는 의미가 없습니다.