制作Windows空壳镜像
镜像准备
准备一台Windows Server 2019 Standard 64bit English镜像(注意是**English版本,不限制Server版本),系统盘40GB。下发ECS时请设置符合规范的密码,主机名请设置为SMS。请使用微软官方的镜像即可。
由于需要安装一些模块,因此需要能访问公网
软件安装与下载
- 请参考制作代理镜像脚本获取代理镜像脚本smsWindowesAgent。
- 安装python3.7.6到C:\smsWindowsAgent\Python目录下。不限制python版本。
- 使用where python指令,查看python是否安装在固定文件夹。
安装requests,configparser等第三方库
执行如下命令,安装requests,configparser。
pip install requests pip install configparser
修改镜像
- 设置程序开机自启动。
- 安装openssh。
- 右键单击开始按钮(或按Win+X组合键)弹出系统快捷菜单,选择“Windows PowerShell(管理员)”,在打开的“管理员: Windows PowerShell”窗口中输入并回车运行以下命令:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
- 安装完成后重启系统即可生效。继续运行以下命令启动 sshd 和 ssh-agent 服务并设置为自动启动:
Start-Service sshd
设置sshd开机自启动
Set-Service sshd Automatic
启动ssh-agent
Start-Service ssh-agent
设置ssh-agent开机自动启动
Set-Service ssh-agent -StartupType Automatic
- 在C:\ProgramData目录下搜索sshd_config文件,增加如下配置:
- 右键单击开始按钮(或按Win+X组合键)弹出系统快捷菜单,选择“Windows PowerShell(管理员)”,在打开的“管理员: Windows PowerShell”窗口中输入并回车运行以下命令:
- 安装OpenStack。
因为sms迁移需要注入相关驱动,所以需要将vmtools中的驱动放在迁移镜像中。下载地址:vmtools下载地址。
下载后需要解压并提取相关文件到代理镜像指定目录,在./vmtools-windows/upgrade/(Windows7/Windwos2012/~~~)/drivers下面存放的是windows所需的驱动。
需要把所有驱动拷贝到sms迁移对应的文件夹中。
以windows2016_64为例:
拷贝upgrade\windows 2016_64\drivers\viostor下的所有文件到代理镜像C:\smsWindowsAgent\bin\peAgent\OpenStack\windows_device_driver\Windows2016_64下。
同样方式拷贝upgrade\windows 2016_64\drivers目录下的其他目录下的文件到C:\smsWindowsAgent\bin\peAgent\OpenStack\windows_device_driver\Windows2016_64下。
拷贝完成后C:\smsWindowsAgent\bin\peAgent\OpenStack\windows_device_driver\Windows2016_64下文件
Windows2008和windows2016等相关文件都需要进行拷贝。
- cmd执行如下命令开启8899,8900端口
netsh advfirewall firewall add rule name=peagent dir=in action=allow protocol=TCP localport=8899 netsh advfirewall firewall add rule name=ntcldst dir=in action=allow protocol=TCP localport=8900
- (可选)非公共镜像,需要安装密码重置插件。
- 下载插件,下载地址:https://cn-south-1-cloud-reset-pwd.obs.cn-south-1.myhuaweicloud.com/windows/reset_pwd_agent/CloudResetPwdAgent.zip
- 依次双击“CloudResetPwdAgent.Windows”或“CloudResetPwdUpdateAgent.Windows”文件夹下的“setup.bat”,安装密码重置插件。
- 在任务管理器中查找cloudResetPwdAgent服务或cloudResetPwdUpdateAgent服务。
- 如果有,表示安装成功。
- 如果没有,表示安装失败。
安全加固(可选):
- 关闭远程登录。
Comntrol Panel -->System and Security -->System --> Allow remote access
- 关闭winrm服务。
- 设置密码登录策略(防止暴力破解)。
- Windows防火墙关闭监听其他端口。
- 打开cmd窗口,使用netstat -ano命令查看监听的端口。
- 关闭所有的用来监听的动态端口(49152-65535)以及135端口。
netsh advfirewall firewall add rule name=Tcp_disable dir=in action=block protocol=TCP localport=135,3389,5985,5986,49152-65535
- 关闭所用的udp端口。
netsh advfirewall firewall add rule name=Tcp_disable dir=in action=block protocol=UDP localport=any
生成镜像ID
- 在控制台,查找IMS服务,进入IMS服务。
- 选择创建镜像。
- 选择需要代理镜像的ECS,创建系统盘镜像。
- 获取镜像id。