![使用 ansible 使用 .ini 文件部署 .exe](https://linux22.com/image/754210/%E4%BD%BF%E7%94%A8%20ansible%20%E4%BD%BF%E7%94%A8%20.ini%20%E6%96%87%E4%BB%B6%E9%83%A8%E7%BD%B2%20.exe.png)
我有带有 setup.ini 文件的 installer.exe。它安装得很完美。只要我双击或通过 cli 打开安装程序即可。当我尝试远程运行它时,安装程序只会忽略 .ini 文件。它不接受任何参数。它是 Windows 10 Pro。
win_copy 的输出
ok: [DESKTOP-123.domain] => {
"changed": false,
"checksum": "0...7",
"dest": "C:\\setup.ini",
"operation": "file_copy",
"original_basename": "setup.ini",
"size": 179,
"src": "\\\\server\\path\\setup.ini" }
ok: [DESKTOP-123.domain] => {
"changed": false,
"checksum": "2...b",
"dest": "C:\\Installer.exe",
"operation": "file_copy",
"original_basename": "Installer.exe",
"size": 659712696,
"src": "server\\path\\Installer.exe" }
安装程序剧本
- name: Installer
win_package:
path: C:\Installer.exe
product_id: '{1...5}'
state: present
ansible 使用的用户对这两个文件都有权限,我可以看到 Installer.exe 在任务管理器中运行,但它实际上不起作用,因为设置在这个 .ini 文件中。
答案1
我认为有帮助的是添加 /install 参数来禁用 ini 文件映射。
尝试像这样运行 win_package 任务:
- name: Installer
win_package:
path: C:\Installer.exe
product_id: '{1...5}'
arguments: /install
这与第一个例子类似win_package 文档。
在 Microsoft 文档页面上更改安装模式您可以在“/install”参数旁边看到一条注释:
禁用 .ini 文件映射到主目录。所有 .ini 文件都将被读取并写入系统目录。在远程桌面会话主机服务器上安装应用程序时,必须禁用 .ini 文件映射。
希望这可以帮助。