先看下这3个文档
https://cloud.tencent.com/document/product/213/30000
https://cloud.tencent.com/developer/article/1883449
https://cloud.tencent.com/developer/article/1851338
确保cloudbase-init是以本地系统帐户(LocalSystem)运行
下面的操作都以Administrator管理员身份执行
1、如果机器能访问外网,进行第2步由脚本来升级cloudbase-init到最新稳定版
如果不能访问外网,参考官网文档升级cloudbase-init到最新稳定版https://cloud.tencent.com/document/product/213/30000
2、把http://windowsbj-1252076932.cos.ap-beijing.myzijiebao.com/CLOUDBASE-INIT_INSTALL1.PS1 下载放到上步买的机器桌面,打开powershell命令行,把桌面的脚本拖到命令行回车,然后等10分钟左右,会自动更新cloudbase-init到最新稳定版
3、升级到最新稳定版后重启机器,然后配置静态DNS,重启前重新review一遍,确定在重启前确确实实静态DNS已经生效了,然后重启机器观察看静态DNS有被reset
4、如何还是被reset,这里有个脚本,把脚本里的dns改成自己的静态DNS地址,DNS的多少可以自己增减,单引号引起来、英文逗号隔开就行
改好后的脚本放到这个目录下C:Program FilesCloudbase SolutionsCloudbase-InitLocalScripts,按照常规办法修改静态DNS,修改后重启机器,过个两三分钟去看,看看DNS有没有被reset成dhcp,如果没有,那就OK。
如果还是不行,把代码里的3改成2试试
代码里的2和3两种情况我都遇到过,由于cloudbase-init是通过调用powershell代码起作用的,我猜测这个判断逻辑2和3的差异可能自定义镜像有常驻的开机计划任务开了弱干个powershell进程放置在了后台,如果是这种情况,除过2和3,可能还会有4、5、6等情况,具体就是看开机后在后台的powershell进程数量有多少
cloudbase-init配置文件位置:
C:Program FilesCloudbase SolutionsCloudbase-Initconfcloudbase-init.conf
配置文件里这2行配置我在IBM云服务器的初始化配置文档里看到过
C:powershell
PS C:Set-ExecutionPolicy Unrestricted
https://www.ibm.com/docs/en/cloud-orchestrator/2.5.0.1?topic=images-adding-cloudbase-init-windows
https://www.ibm.com/docs/zh/cloud-orchestrator/version-missing?topic=images-adding-cloudbase-init-windows
cloudbase-init日志文件位置:
C:Program FilesCloudbase SolutionsCloudbase-Initlogcloudbase-init.log