为什么 Ansible 找不到系统路径中的可执行文件?
Why can't Ansible find an executable that's in the system path?
Ansible v2.11
目标:Windows 2012 服务器
我正在尝试使用 C:\Program Files-zipz.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"
我错过了什么?
您应该使用一个通用参数,它叫做 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-zip'
Ansible v2.11 目标:Windows 2012 服务器
我正在尝试使用 C:\Program Files-zipz.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"
我错过了什么?
您应该使用一个通用参数,它叫做 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-zip'