Ansible raw 给出的结果与在终端上运行命令不同

问题描述 投票:0回答:1

在我的 ansible 目标的终端上运行以下自定义命令

/abc/fold/bin/abh 'ansible'
时,它工作正常。我尝试从不同的目录运行它,看看是否有什么不同。但它适用于我尝试过的所有目录

当尝试注册命令的结果时,我得到了不同的结果。

- name: Get template
  ansible.builtin.raw: /abc/fold/bin/abh 'ansible'
  register: log_template

打印输出时

- name: Print template
  ansible.builtin.debug:
    msg: "Log template {{ log_template.stdout }}"

我可以看到存在导入错误。 我怎样才能以与在机器终端上运行它完全相同的方式运行该命令。

机器操作系统是windriver linux 6

ansible
1个回答
0
投票

经过一番查找,发现环境不一样。我尝试通过 ansible 运行 echo $PATH 并将结果与直接在服务器上运行时的输出进行比较。 我通过手动添加所有环境变量解决了这个问题,例如:

- name: Get template
  ansible.builtin.command: /abc/fold/bin/abh 'ansible'
  environment:
    PATH: "/some_path"
    PYTHONPATH: "/some_other_path/"
© www.soinside.com 2019 - 2024. All rights reserved.