2017-11-26 4 views
0

2つの検索文字列(with_items)を使用してデータベースにクエリを行い、変数に登録します。私はつまり、上記のフィールド「の値」に応じて文書ID、 の値を検索するexperessionを書きたい、そしてアシスタント - データベース出力を再構築して、値を検索するための辞書として使用することができます。

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

:私はデバッグの変数を印刷して、このような何かを得ます。オペレーティングシステムによって異なります。

つまり、現在のサーバーで、{{ansible_distribution}}が 'OracleLinux'の場合は「652」と表示される可能性がありますか?

これを達成するための方法がいくつかあります。最初にいくつかのset_factを実行することによって...私はそれを試みましたが、失敗しました。なぜなら、私はwith_itemsループでset_factを試みましたが、最初のものだけが設定されていたからです。

+0

: 653 – frisbee23

答えて

1

オリジナルの辞書はその後、resの場合:osys_dict:: OracleLinux:652 Ubuntuの私はちょうど手動で次のようになりますデータベースと同期する必要がある辞書を作っ回避策として

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

この力は非常に強い – frisbee23

関連する問題