问题
雷州网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。有大概5台Agent Server,注册的时候,发现2台可以成功,其他的不成功。
注册失败的错误日志如下:
初步尝试
首先,Pull Server已经平稳的运行了几年了,此次注册还有部分Agent能成功,所以,首先排除Pull Server的问题。包括网络问题和代码逻辑问题。
明显是失败的Agent存在某些问题,检索关键词可以找到官方文档:
简单来说是证书的CN name存在问题,但我们从Agent上发其他请求是可以的,所以可以排除该问题。
我们使用curl命令进行请求测试,如下图:
其他尝试
既然有注册成功的Server,我们可以和注册失败的Server进行一些其他方面的对比,看是否是系统配置问题(展示命令为主,非实际操作)
对比操作系统
对比PowerShell版本
对比NET 版本
对比WinRM设置
对比网络设置
结果发现,2台Server除了操作系统版本不一样以外,其他的配置完全一样。
其他尝试
这个时候,就没有思路了,Pull Server不可能针对某些Server进行设置,况且就是在Agent应用LCM 配置的时候出错了,查下数据库,确保它确实没有注册成功(写入数据)。
根据AgentId查询,果然是没有写入数据。
理论上,即使有数据,重复注册也是可以的。
到此,实在没有好办法了。(其实就在此处错过了)
后来
总要给客户一个交代的,找不出来原因,我们可以通过人工手动向数据库插入数据进行注册。
我们写了insert的SQL脚本,运行,提示:已经有相同的Node Name了!
柳暗花明!
怎么会有Node Name了呢,刚明明使用AgentId查询还没有呢?
使用Node Name查询,确实查到了一条,但是AgentId却不是现在Server的。
也就是说,该Agent Server在之前某个时候注册过(通过Get-DSCLocalcongurtionManager命令也可以看出来),但后来AgentId变化了,所以新注册的时候,由于已经存在该Node Name,导致数据库插入数据失败。
删除该脏数据后,重新注册,一切好了。
AgentId为什么会改变呢?我们通过systeminfo命令看到,该系统一个月前重装了,所以产生了新的guid给LCM,也就是新的AgentId。
吐槽
- DSC这块由微软打包提供,出现问题,错误抛出的比较笼统,不好明确的定位出问题
- 其实一开始就发现该Server已经注册过,应该查询数据库,并且思维缜密些,使用Node Name + AgentId+ ip等分别查询,确保数据的问题。
- 该问题出现的场景实在特殊,也增加了排查的难度。
- DSC相关的资料实在太少,而且不够详细。
总结
总之,该问题出现的原因就是DSC数据库中已经存在相同的Node Name,删除旧数据即可解决。
新闻标题:DSC注册Agent失败-InternalServerError-创新互联
路径分享:http://lswzjz.com/article/decjpp.html