【问题标题】:Why can't Ansible find an executable that's in the system path?为什么 Ansible 找不到系统路径中的可执行文件?
【发布时间】:2021-11-22 17:44:06
【问题描述】:

Ansible v2.11 目标:Windows 2012 服务器

我正在尝试使用C:\Program Files\7-zip\7z.exe 实用程序解压缩文件,并且该文件夹位于系统路径中。由于文件名长,我不能使用win_unzip。但是我明白了吗?

- name: "Unzip exa-web {{ exa_web_zip }}"
  win_command:
    7z x {{ remote_dir }}/{{ exa_web_zip }} -o{{ exa_web_dir }}

TASK [exa-web : Unzip exa-web exa-web-development-b7cf4eee3c-20210930_1700-win64.zip] ***
fatal: [172.16.100.31]: FAILED! => {"changed": false, "cmd": "7z x C:\\temp/exa-web-development-b7cf4eee3c-20210930_1700-win64.zip -oC:\\Viztek\\EXA\\web", "msg": "Exception calling \"SearchPath\" with \"1\" argument(s): \"Could not find file '7z.exe'.\"", "rc": 2}

我什至添加了这个任务只是为了确保它在系统路径中,但无济于事。

- name: Add to system path
  win_path:
    elements:
      - "C:\\Program Filse\\7-zip"

我错过了什么?

【问题讨论】:

  • Filse --> Files

标签: windows ansible 7zip


【解决方案1】:

您应该使用一个通用参数,它称为chdir。然后 ansible 应该找到可执行文件:

- name: "Unzip exa-web {{ exa_web_zip }}"
  win_command:
    7z x {{ remote_dir }}/{{ exa_web_zip }} -o{{ exa_web_dir }}
  args:
    chdir: 'C:\Program Filse\7-zip'

【讨论】:

  • 感谢您解决了这个问题。但我仍然想知道为什么 Ansible 不能很好地使用 7z 实用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 2018-05-30
  • 2014-02-28
相关资源
最近更新 更多