2017-07-21 4 views
0

こんにちは私は次のようなプレイブックを持っています。私はdocker apiからjson出力を解析しようとしていますが、まだ運がありませんでした。 IdはIdフィールドを解析してドッカーexecの入力として使用するのが好きです。私の最終結果は、実行中のすべてのコンテナのレポートを環境変数とともに取得することです。Docker APIから返されたjson上の不可能な反復の使用

- hosts: devtest.log.economicalinsurance.com 



tasks: 

- name: Get containers 
    command: curl --insecure --cert-type PEM --cert /etc/docker/server-cert.pem --key /etc/docker/server-key.pem "https://127.0.0.1:2376/v1.22/containers/json?all=1" 
    register: containers 

- debug: msg="{{ containers.stdout }}" 

- name: Get ENV Vars 
    command: docker exec -t {{ item }} printenv 
    with_items: "{{ containers.stdout|json_query|('Id[*]'') }}" 
+1

'docker exec'を使う代わりに'/containers/{id}/json'でinspectエンドポイントを使いたいかもしれません:https://docs.docker.com/engine/api/v1.30/#operation/ContainerInspect - 'printenv'と比べて異なる結果が得られることに注意してください。次に、json_queryについてのメモ: '..stdout | from_json | json_query( '[*]。Id')'を試しましたか? http://docs.ansible.com/ansible/latest/playbooks_filters.html#json-query-filter – gesellix

+0

Thanks @gesellixを参照してください。私はそれを試みます。それがうまくいって、[*]。id。自由に回答を投稿してください。回答としてマークします。 – CodyK

+0

@Codemiesterに感謝します! – gesellix

答えて

関連する問題