操作场景
Cloudbase-Init 是一种在 Windows 操作系统中安装的工具,它的作用是帮助用户在云环境中自动化地配置和初始化 Windows 虚拟机。在云环境中,用户需要快速创建和部署虚拟机,而 Cloudbase-Init 可以帮助用户在创建虚拟机时自动完成一些初始化工作,例如配置网络、安装软件、执行脚本等。
本文档以 Windows Server 2022 64位操作系统为例,指导您在 Windows 操作系统上安装 Cloudbase-Init。
准备软件
安装 Cloudbase-Init 需准备以下软件:
软件名称 | 获取路径 | 说明 |
CloudbaseInitSetup_X_X_XX_xXX.msi | 请根据实际使用的操作系统位数,下载对应的 Cloudbase-Init 安装包: 稳定版本:推荐使用该版本安装包 Windows 64位 操作系统:点此获取 Windows 32位 操作系统:点此获取 Beta 版本 更多详情请参见 Cloudbase-Init 官网。 | 用于安装 Cloudbase-Init。 |
TencentCloudRun.ps1 | 用于修改 cloudbase-init 配置文件。 | |
localscripts.py | 用于保证 Cloudbase-Init 可以正常启动。 |
操作步骤
安装 Cloudbase-Init
1. 下载CloudbaseInitSetup_X_X_XX_xXX.msi软件到您的服务器中,在操作系统界面,双击打开 Cloudbase-Init 安装包。
2. 在弹出的安全警告提示框中,单击运行,进入 Cloudbase-Init 安装界面。如下图所示:


3. 单击 Next。
4. 勾选 I accept the terms in the License Agreement,连续单击2次 Next。
5. 在 Configuration options 界面,将 Serial port for logging 设置为 COM1(如果无该选项,可忽略),勾选 Run Cloudbase-Init service as LocalSystem,并单击 Next。如下图所示:


6. 单击 Install,安装 Cloudbase-Init。
7. 待 Cloudbase-Init 完成安装后,单击 Finish,关闭 Cloudbase-Init 安装界面。如下图所示:
注意
关闭 Cloudbase-Init 安装界面时,请勿勾选任何复选框,不要运行 Sysprep。


修改 cloudbase-init 配置文件
1. 按下 Win + E 打开文件资源管理器,进入
cloudbase-init.conf 配置文件的默认路径:C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\conf。2. 右键单击
cloudbase-init.conf 文件,选择“用记事本打开”或 “编辑”(若已关联文本编辑器)。若系统提示权限不足:
右键单击文件,选择“以管理员身份运行”记事本。
或将文件复制到桌面,修改后再覆盖回原路径(需管理员权限覆盖)。
3. 将
cloudbase-init.conf 配置文件替换为以下内容:[DEFAULT]username=Administratorgroups=Administratorsinject_user_password=trueconfig_drive_raw_hhd=trueconfig_drive_cdrom=trueconfig_drive_vfat=truebsdtar_path=C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\bin\\bsdtar.exemtools_path=C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\bin\\san_policy=OnlineAllmetadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService,cloudbaseinit.metadata.services.ec2service.EC2Service#,cloudbaseinit.metadata.services.httpservice.HttpService#,cloudbaseinit.metadata.services.maasservice.MaaSHttpServicemetadata_base_url=http://169.254.10.10/ec2_metadata_base_url=http://169.254.10.10/retry_count=2retry_count_interval=5plugins=cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin,cloudbaseinit.plugins.common.userdata.UserDataPluginverbose=truedebug=truelogdir=C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\log\\logfile=cloudbase-init.logdefault_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN#logging_serial_port_settings=COM1,115200,N,8mtu_use_dhcp_config=truentp_use_dhcp_config=truefirst_logon_behaviour=nonetbios_host_name_compatibility=falseallow_reboot=falseactivate_windows=truekms_host="kms.tencentyun.com"local_scripts_path=C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\LocalScripts\\C:\\powershellPS C:\\Set-ExecutionPolicy Unrestrictedvolumes_to_extend=1,2,3,4,5
说明:
配置文件中最后一行的
volumes_to_extend参数值必须明确指定为 C 分区对应的具体卷序号(整数数值)。若采用非精确匹配的模糊配置,在极少数情况下可能触发 NTFS 文件系统底层缺陷,导致设备初始化阶段出现系统异常(包括但不限于 IO 操作阻塞、资源锁死等不可恢复性故障)。通过磁盘管理工具(如 diskpart)查询 C 分区的实际卷序号,确保配置项严格遵循"volumes_to_extend=C 分区卷序号"的格式。
执行以下命令禁用 NTFS 内存页锁定机制,以降低该缺陷的触发概率:
reg add "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem" /v NtfsLockSystemFilePages /t REG_DWORD /d 0 /f
4. 下载 TencentCloudRun.ps1 脚本(本文档 准备软件 列表获取),并将 TencentCloudRun.ps1 脚本拷贝到
C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\LocalScripts 路径下。5. 右键单击
TencentCloudRun.ps1 脚本,选择属性,并在弹出窗口中查看脚本是否具备可执行权限。如下图所示:
如存在“解除锁定”选项,则需勾选“解除锁定”,并单击确定退出。
如不存在“解除锁定”选项,则请跳过本步骤。
6. 将
C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\Python\\Lib\\site-packages\\cloudbaseinit\\plugins\\common 路径下的 localscripts.py 替换为 准备软件 中的 localscripts.py 文件。