2017-11-26 11 views
0

두 개의 검색 문자열 (with_items)을 사용하여 데이터베이스에 쿼리를 작성하고이를 변수에 등록하십시오. 내가 즉, 위의 필드 '가치'에 따라 documentId, 의 값을 조회 할 수있는 experession을 작성하려면, 다음가능 - 데이터베이스 출력을 다시 작성하여 값 조회 용으로 사용할 수 있습니다.

{ 
"result": [ 
    { 
     "documentId": "653", 
     "value": "Ubuntu" 
    } 
] 
}, 
{ 
"result": [ 
    { 
    "documentId": "652", 
    "value": "OracleLinux" 
    } 
] 
} 

: 내가 디버그와 변수를 인쇄이 뭔가를 얻을. 운영 체제에 따라 다릅니다.

즉, 현재 서버에서 {{ansible_distribution}}이 (가) 'OracleLinux'일 경우 "652"라고 표시 할 수 있습니까?

또는이를 수행 할 수있는 방법이 있습니다. 몇 가지 set_fact 먼저 수행하여 ... 나는 그것을 시도했지만 실패했는데, 왜냐하면 나는 with_items 루프에서 set_fact를 시도했기 때문에 첫 번째 세트 만 설정 되었기 때문이다.

+0

난 그냥 수동처럼 보이는 데이터베이스와 동기화 할 수있는 DICT을했다 : 653 – frisbee23

답변

1

원래 딕셔너리는, res 경우 : osys_dict : OracleLinux : 652 우분투 해결 방법으로

{{ (res | map(attribute='result') | selectattr('value','equalto', ansible_distribution) | first).documentId }} 
+0

힘이 매우 강합니다. – frisbee23