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[*]'') }}"
'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
Thanks @gesellixを参照してください。私はそれを試みます。それがうまくいって、[*]。id。自由に回答を投稿してください。回答としてマークします。 – CodyK
@Codemiesterに感謝します! – gesellix