我正在使用 ansible 运行 Windows 的打包程序来配置 VM。
我通过 OpenSHH 连接到虚拟机。我将 powershell 7 设置为 OpenSSH 的默认 shell。当我在命令行上通过 ssh 连接到 VM 时,横幅显示 PowerShell 7.1.3。
我通过 ansible-playbook 运行以下代码:
- name: Check powershell version
ansible.windows.win_shell: |
Get-Host | Select-Object Version
- name: Check powershell version
ansible.windows.win_shell: |
Get-Host | Select-Object Version
args:
executable: pwsh
第一个任务返回5.1.19041.1023
第二个任务返回7.1.3
因此,当我不指定可执行文件时,win_shell 正在运行 powershell.exe,即 powershell 5。
当我将可执行文件指定为 pwsh(即 powershell 7)时,它的行为正确。
我不明白为什么 win_shell 模块忽略了注册表中的默认设置。有谁知道我做错了什么?