所需工具
- virtio驱动
- Linux环境
- Windows Server 操作系统
- Cloudbase-init
- VNC Viewer
1.搭建Linux制作环境
CentOS 7 操作系统
[root@localhost 2008_r2]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@localhost 2008_r2]#
检查是否支持虚拟化
[root@localhost 2008_r2]# egrep -c '(vmx|svm)' /proc/cpuinfo
48
安装Qemu
[root@localhost 2008_r2]# yum install qemu-kvm qemu-img -y
... 忽略安装细节 ...
[root@localhost 2008_r2]# qemu-kvm -version
QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-175.el7_9.6), Copyright (c) 2003-2008 Fabrice Bellard
2.准备所需软件包
下载后,得到文件:virtio-win-0.1.221.iso
下载后,得到文件:CloudbaseInitSetup_1_1_2_x64.msi
并将其制作为 iso 文件 CloudbaseInitSetup_1_1_2_x64.iso
将文件拷贝至CentOS 7母机中,如下
[root@localhost 2008_r2]# ls
CloudbaseInitSetup_1_1_2_x64.iso virtio-win-0.1.221.iso
3.准备操作系统
操作系统:cn_windows_server_2008_r2_hpc_x64_dvd_552764.iso
拷贝至CentOS 7 母机中,如下
[root@localhost 2008_r2]# ls
CloudbaseInitSetup_1_1_2_x64.iso virtio-win-0.1.221.iso
cn_windows_server_2008_r2_hpc_x64_dvd_552764.iso
4.本机准备 VNC Viewer
为方便连接CentOS 7 母机,将使用 VNC Viewer 作为客户端连接
5.启动虚拟机制作 Win 2008 R2
输入以下命令,创建一块磁盘
[root@localhost 2008_r2]# qemu-img create -f qcow2 win_server_2008_r2.qcow2 20G
Formatting 'win_server_2008_r2.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off
创建一磁盘,得到 win_server_2008_r2.qcow2 文件
输入以下命令,启动磁盘并应道操作系统启动
qemu-kvm
-m 8192
-smp 8
-usbdevice tablet
-rtc base=localtime
-net nic,model=virtio
-net user
-boot d
-drive file=win_server_2008_r2.qcow2,if=virtio,index=0,media=disk
-drive file=cn_windows_server_2008_r2_hpc_x64_dvd_552764.iso,index=1,media=cdrom
-drive file=virtio-win-0.1.221.iso,index=2,media=cdrom
-drive file=CloudbaseInitSetup_1_1_2_x64.iso,index=3,media=cdrom
-balloon virtio
-vnc 0.0.0.0:0
参数 | 作用 |
-m | 指定虚拟机内存大小 |
-smp | 设置虚拟机CPU数 |
-usbdevice tablet | 同步虚拟机内外鼠标 |
-rtc base=localtime | 设定系统时间 |
-net nic,model=virtio | 设定网络模式 |
-net user | 用户网络模式,桥接当前网络 |
-boot d | 启动模式 CD-ROM (d) |
-drive file=xxx.qcow2,media=disk,if=virtio | 添加个磁盘设备 |
-balloon virtio | 虚拟机内外通讯 |
-vnc 0.0.0.0:0 | 启用 VNC |
完成以上操作后
开放CentOS 7 端口
firewall-cmd --zone=public --add-port=5900/tcp --permanent
firewall-cmd --reload
开始连接
选择自定义安装
选择 加载驱动程序
下一步,选安装磁盘开始安装操作系统,安装完成后将自动重启。
重启完成后,进入操作系统安装驱动程序
1.安装 以太网控制器
同上安装 PCI设备 驱动程序 Virtio Balloon Driver
安装 Balloon Server
安装 CloudbaseInit
配置 CloudbaseInit
配置参数
metadata_services=cloudbaseinit.metadata.services.httpservice.HttpService,
cloudbaseinit.metadata.services.configdrive.ConfigDriveService
plugins=cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,
cloudbaseinit.plugins.common.userdata.UserDataPlugin,
cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,
cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin
first_logon_behaviour=no
netbios_host_name_compatibility=false
最后执行 C:\Windows\System32\sysprep\sysprep.exe
问题:
首次登录时提示:
单击Windowa键+R,键入secpol.msc,然后按Enter。
更改如下选项:
最后不要执行 C:\Windows\System32\sysprep\sysprep.exe。
直接上传至 OpenStack Image
Ubuntu Server 22.04
同上安装系统:
开启root用户
sudo passwd root
查看 ssh 服务状态,运行状态
systemctl status ssh
修改 ssh 配置文件
vi /etc/ssh/sshd_config
开启 root登录,密码认证
重启 ssh 服务
systemctl restart ssh
安装 Cloud-Init 工具
apt update
apt install cloud-init
开机自启 & 查询状态
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
输入以下指令,查看是否按照成功,若成功将返回 cloud-init 安装版本
cloud-init -v
cloud-init init --local
配置 cloud-init
vi /etc/cloud/cloud.cfg
完成如下内容修改
具体参数详解:华为云配置教程
输入以下命令将返回 cloud-init 的具体版本,则表示配置文件正确
cloud-init init --local
Cloud-init v. 22.3.4-0ubuntu1~22.04.1 running 'init-local' at Sat, 22 Oct 2022 05:50:24 +0000. Up 2549.37 seconds.
将 root 用户的密码有效期调整
chage -M 99999 root
关机,并上传镜像值 OpenStack,进行测试。
CentOS 7磁盘自动填充问题:
growpart:
mode: auto
devices: [/dev/vda2]
ignore_growroot_disabled: false
bootcmd:
- [growpart,/dev/vda,2]
- [pvresize,/dev/vda2]
- [lvextend,-l,+100%FREE,/dev/mapper/centos-root]
- [xfs_growfs,/]
Ubuntu 24.02
growpart:
mode: auto
devices: [/dev/vda3]
ignore_growroot_disabled: false
bootcmd:
- [growpart,/dev/vda,3]
- [pvresize,/dev/vda3]
- [lvextend,-l,+100%FREE,/dev/mapper/ubuntu--vg-ubuntu--lv]
- [xfs_growfs,/]