You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible中k8s_exec执行带管道符的find命令报错如何解决

根因说明
  • kubernetes.core.k8s_exec模块的command参数默认直接传递原始命令给系统调用,不会通过shell解析命令语法,你编写的管道符|会被当成find命令的普通参数传入,find无法识别该参数为路径,因此抛出paths must precede expression报错。
修复方法

将整条带管道的命令作为sh -c的入参,调用容器内的shell解析逻辑即可,修改后的代码如下:

tasks:
- name: "Getting Local File Count"
  kubernetes.core.k8s_exec:
    namespace: "{{namespace}}"
    pod: "{{pod}}"
    command: "sh -c \"find '{{local_dir}}' -type f | wc -l\""
  register: command_status

如果目标容器内置bash,可将sh替换为bash,兼容性更好。

内容的提问来源于stack exchange,提问作者Paul Blart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:09:03