我正在构建剧本来部署 Windows 应用程序,该应用程序需要在应用程序本身之前安装一些先决条件(Visual C++ 运行时和 dotNet 框架)。这些先决条件是 .EXE 文件并且都包含在特定文件夹中。
我想构建一个 Ansible 剧本,它将(除其他外)使用参数“/install /passive”执行 preriquisites 文件夹中的每个 .EXE 文件
我不想在我的剧本中指定每个文件名。
我的想法是首先使用“win_file”模块找到先决条件设置文件,将结果分配给一个变量,然后迭代该变量并为其包含的每个文件运行“win_command”模块。
不幸的是,我无法使用 register 语句将 win_find 结果分配给变量,它根本不执行任何操作。
这是我尝试过的:
- hosts: "{{ target }}"
tasks:
- name: Find files in path
win_find:
register: myvar
paths: E:\Temp\Prognosis_11.2\Prerequisites
- name: debug
debug:
msg: "{{ myvar }}"
Run Code Online (Sandbox Code Playgroud)
使用 -v(详细模式)运行时剧本的输出:
任务 [在路径中查找文件] ************************************************ ****************************************************** ****************************************************** ***********
ok: [SMN001] => {"changed": false, "examined": 5, "files": [{"attributes": "Archive", "checksum": "3049a85843eaf65e89e2336d5fe6e85e416797be", "15958697be", "15958609" ": ".exe", "filename": "NDP46-KB3045557-x86-x64-AllOS-ENU.exe", "isarchive": true, "isdir": false, …