2017-12-04 25 views
0

나는 두 개의리스트를 반환하거나 프린트하는 파이썬 스크립트를 가지고있다. 이제불가능 - 여러 변수를 등록 할 수 있습니까?

 -task: 
     name: get the hosts 
     command: /test.py 
     register: result 

, 그것은 등록 된 변수 결과에서 POOL1와 별도로 pool2을 가져올 수 있습니다 :

test.py

def getHosts(): 
     Pool1=[x.x.x.x, x.x.x.x] 
     Pool2=[x.x.x.x, x.x.x.x] 
     Print pool1,pool2 
     Return pool1,pool2 

getHosts() 

내 각본처럼 보이는? 그렇다면 예제를 보여주십시오.

도움이나 제안을 보내 주시면 대단히 감사하겠습니다.

+0

단순히 JSON 개체를 생성하지 않는 이유는 무엇입니까? – techraf

+0

@techraf 당신은 파이썬에서 JSON을 반환한다고 말하고 싶습니까? 예, 그렇습니다 만, register 변수에서 JSON 객체를 읽는 방법을 설명합니다. (매우 신참 한 Pls 코드의 일부 청크 공유) – Shibankar

+0

"읽는 방법"이란 무엇을 의미합니까? – techraf

답변

2

JSON을 생산하고 Ansible에게 공급하십시오.

--- 
- hosts: localhost 
    gather_facts: no 
    connection: local 
    tasks: 
    - command: 'echo { \"Pool1\": \"[x.x.x.x, x.x.x.x]\", \"Pool2\": \"[x.x.x.x, x.x.x.x]\" }' 
     register: my_output 
    - set_fact: 
     my_variable: "{{ my_output.stdout | from_json }}" 
    - debug: 
     msg: "Pool1 is {{ my_variable.Pool1 }} and Pool2 is {{ my_variable.Pool2 }}" 

이 결과 :

ok: [localhost] => { 
    "msg": "Pool1 is [x.x.x.x, x.x.x.x] and Pool2 is [x.x.x.x, x.x.x.x]" 
} 

가 나중에 변수를 사용하는 방법에 따라, 당신은/from_json 필터가 필요하지 않을 수도 있습니다 그것은 자동으로 적절한 데이터 구조를 만들 것 (this 참조).

+0

고맙습니다. 그건 잘 작동합니다. – Shibankar