我正在尝试运行一个返回容器列表及其大小的 docker 命令。
命令是docker container ls --format "{\"name\":\"{{.Names}}\", \"size\":\"{{.Size}}\"} " --all | jq --slurp
当我尝试在 Ansible 剧本中运行它时,它会爆炸:
- name: Get cointainer size
raw: /path/to/script/docker-cointainer-size.sh
截断误差为:
fatal: [localhost]: FAILED! => changed=true
msg: non-zero return code
rc: 2
stderr: |-
jq - commandline JSON processor [version 1.5-1-a5b5cbe]
Usage: jq [options] <jq filter> [file...]
...
我怀疑这与管道 (|) 的使用有关,因为当我删除它时,以及随后的jq
命令,剧本成功完成。
The .sh
手动运行时脚本确实可以正常工作。
我也尝试过使用shell
模块,以及command
模块 - 两者都无法运行脚本。
我该如何使用jq
以及 Ansible playbook 中的管道函数?
退出代码说:
遥控:2
标准错误:|-
jq - 命令行 JSON 处理器 [版本 1.5-1-a5b5cbe]
用法:jq [选项] [文件...]
jq 退出代码 2 https://stedolan.github.io/jq/manual/v1.6/ means:
有任何使用问题或系统错误
man jq 显示:
jq [选项...] 过滤器[文件...]
缺少“过滤器”。打个“.”例如复制输入
jq——slurp。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)