我已经在Windows 10工作站的WSL(Linux的Windows子系统)中安装了Ansible。
我的目标是同时配置WSL和Windows 10本身。
我能够针对本地主机运行剧本,该本地主机通过SSH和WSL进行连接和配置。
但是我不确定Ansible是否可以针对Windows主机运行剧本以设置Windows本身(例如,使用Chocolatey安装软件包)
那有可能吗?或者Ansible仅在安装在其他Linux机器上时才能设置Windows节点?
答案 0 :(得分:2)
太好了!完成这些步骤后,我便能够连接到Windows主机。
但是,在我能够针对WSL和Windows主机同时运行Ansible剧本之前,我不得不解决另外两个问题:
Windows主机使用expect(getByText('Test 1').parentElement).toHaveStyleRule('color', 'black');
,但是对于WSL需要不同的连接,我设置了ansible_connection=winrm
。
ansible_connection=local
变量是overridden。这是因为var名称和主机名相同。这意味着您可以为WSL或Windows主机运行剧本,但不能同时针对两者运行,因为它们需要不同的连接。
要解决此问题,您可以设置hash-behaviour,也可以在WSL ansible_connection
下为localhost设置两个不同的主机名。我已经完成了第二个:
/etc/hosts
我的127.0.0.1 wsl.local
127.0.0.1 windows.local
:
/etc/ansible/hosts
现在,我可以运行ansible_playbook,同时对Windows主机和WSL都运行任务。 Here有关配置的更多详细信息。
答案 1 :(得分:1)
是的,有可能。
$ apt install python-pip
$ pip install pywinrm
$ pip install xmltodict
Enable-PSRemoting -SkipNetworkProfileCheck
提供参数来跳过此操作,但我不建议这样做。Enable-PSRemoting
在Windows的PowerShell中运行它。 Set-Item -Path WSMan:\localhost\Service\Auth\Basic -Value $true
Set-Item -Path WSMan:\localhost\Service\AllowUnencrypted -Value $true
ansible_port: 5985
ansible_connection: winrm
ansible_winrm_transport: basic
ansible_user=your_win_user
和ansible_password=your_win_user_pass
或在以前的变量中进行硬编码。 我使用此设置从WSL设置机器。您可以看看here。希望这会有所帮助。