长时间/首个time...Using官方AWSWindows2019AMI(“am-0229f7666f517b31e”在“us-east-1”上),我们旋转一个新实例并通过PowerShell执行一些基本任务(使用"user_data“选项):
Start-Transcript -Path "c:\user-data.txt"$admin = [adsi]("WinNT://./administrator, user")
$admin.PSBase.Invoke("SetPassword", "${password}")$WinRM = Invoke-WebRequest -Proxy http://"${proxy}" -UseBasicParsing https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 | Select-Object -ExpandProperty Content
Invoke-Expression $WinRMSet-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -name "fDenyTSConnections" -value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"Rename-Computer -NewName "${name}" -ForceStop-TranscriptRestart-Computer非常基本的东西,没有什么是我们能看到的问题,并验证了每一项任务是正常工作的。
在这一点上,我们将运行一个Ansible剧本来做一些事情(配置服务、加入域、安装巧克力等等)。但总是失败的任务是Windows部分。
在故障排除过程中,除了使用ansible.windows集合调用Windows之外,我们还从Ansible剧本中删除了所有内容。因此,此时,部署了实例,通过"user_data“运行基本的user_data任务,然后Ansible连接并尝试运行Windows。
Ansible任务本身也是相当基本的:
- name: os - perform windows updates
win_updates:
state: installed
category_names:
- Application
- Connectors
- CriticalUpdates
- DefinitionUpdates
- DeveloperKits
- FeaturePacks
- Guidance
- SecurityUpdates
- ServicePacks
- Tools
- UpdateRollups
log_path: c:\wu-install.log
reboot: yes
reboot_timeout: 600所以,当我们运行时,我们看到了这样的反应:
Failed to search for updates: Exception from HRESULT: 0x80240438每当我们使用我们想要的workflow...However来尝试它时,我们都会发现,如果我们在Windows任务执行之前交互一次,它就能工作!每次!
我的上一份工作是99.9%的linux,所以我对此有点生疏,但我知道在第一次(交互)登录时会发生一些疯狂的/无文档的事情。我尝试了大量不同的东西(禁用IPv6、运行wsreset.exe、删除Windows注册表项、重新启动等)。根据对错误code...But的研究,我唯一能看到的是,只要我在Windows尝试运行之前交互登录一次,一切都很好。
但很明显,我们不想这样做;)
同样要明确的是:
Failed to search for updates: Exception from HRESULT: 0x80240438Security Intelligence Update for Microsoft Defender Antivirus - KB2267602 (Version 1.329.1737.0)注意:这只是当前的响应,因为AMI只缺少update...So将来可以/应该改变的
另外,这不包括任何域连接或anything...Although,我注意到了类似的模式。如果我使用完整的剧本,只要我在运行Windows任务之前交互地使用域用户登录就可以了。
应该指出,当我以交互方式登录时,我绝对是通过RDP进行nothing...Just登录,然后我不接受任何提示或单击任何内容。
显然,目标是使它不需要手动登录,因为这违背了这个项目的主要目的。所以我的问题是:
在这一点上我们愿意尝试任何事情,我唯一能说的就是我们不能改变所使用的AMI (除了将它更新到最新的版本之外),并且需要实现"user_data“过程的最终结果(但如果这是问题的话,可以通过其他方式进行)。存在一个代理,但我不认为这是一个因素,因为问题的根源似乎是交互登录。
发布于 2021-02-16 05:24:18
我以前也有过这个问题。不确定修复程序,但是需要为ansible用户配置自动登录。重新启动实例。运行更新,然后删除自动登录。
非常糟糕的工作,我的是一个封隔器图像创建的一部分,所以我只需添加自动登录,然后删除更新。
发布于 2021-03-09 23:14:55
fwiw,我打开了一份关于这方面的错误报告:
https://github.com/ansible-collections/ansible.windows/issues/193
https://serverfault.com/questions/1048827
复制相似问题