虚拟机管理软件:exsi 6.7,
k8s node节点: ubuntu 18.04.5 desktop, k8s 1.18.20。
进入 windows7下载目录(此目录应当只有一个iso)构建镜像
cd /media/sf_backup/dev/os/windows10-20h2 cat <win10-c-sysprep.yaml apiVersion: v1 kind: ConfigMap metadata: name: win10-configmap data: autounattend.xml: |-post-install.ps1: |- # Remove AutoLogin # https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-shell-setup-autologon-logoncount#logoncount-known-issue reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v AutoAdminLogon /t REG_SZ /d 0 /f # install Qemu Tools (Drivers) #Start-Process msiexec -Wait -ArgumentList '/i e:virtio-win-gt-x64.msi /qn /passive /norestart' # install Guest Agent #Start-Process msiexec -Wait -ArgumentList '/i e:guest-agentqemu-ga-x86_64.msi /qn /passive /norestart' # Rename cached unattend.xml to avoid it is picked up by sysprep mv C:WindowsPantherunattend.xml C:WindowsPantherunattend.install.xml # Eject CD, to avoid that the autounattend.xml on the CD is picked up by sysprep (new-object -COM Shell.Application).NameSpace(17).ParseName('F:').InvokeVerb('Eject') # Run Sysprep and Shutdown C:WindowsSystem32Sysprepsysprep.exe /generalize /oobe /shutdown /mode:vm #C:WindowsSystem32Sysprepsysprep.exe /generalize /oobe /shutdown --- metadata: name: w10-c apiVersion: kubevirt.io/v1alpha3 kind: VirtualMachineInstance spec: domain: clock: timezone: "Asia/Shanghai" utc: {} timer: {} cpu: sockets: 4 cores: 1 threads: 1 features: acpi: {} apic: {} hyperv: relaxed: {} vapic: {} vpindex: {} spinlocks: spinlocks: 8191 resources: requests: memory: 4096M cpu: 4 devices: #blockMultiQueue: true inputs: - type: tablet bus: usb #bus: virtio name: tablet1 disks: - name: rootdisk bootOrder: 1 disk: bus: virtio - name: containerdisk bootOrder: 2 cdrom: bus: sata - name: virtiocontainerdisk bootOrder: 3 cdrom: bus: sata - name: sysprep bootOrder: 4 cdrom: bus: sata interfaces: - name: default model: e1000 masquerade: {} networks: - name: default pod: {} volumes: - name: containerdisk containerDisk: image: win10:20h2 - name: rootdisk hostDisk: capacity: 30Gi path: /data/vm/win1001/disk.img type: DiskOrCreate - name: virtiocontainerdisk containerDisk: image: kubevirt/virtio-container-disk:v0.37.0 - name: sysprep sysprep: configMap: name: win10-configmap en-US 0409:00000409 en-US en-US en-US en-US E:amd64w10 E:viostorw10amd64 1 Primary 100 true 2 Primary NTFS 1 1 0x27 NTFS C 2 2 0 true /Image/Description Windows 10 Pro 0 2 >true false 0409:00000409 en-US en-US en-US en-US true 0 > true true true true Work true true 3 123456 true true Administrator > 123456 true China Standard Time powershell -ExecutionPolicy Bypass -NoExit -NoProfile f:post-install.ps1 false 1 Post Installation script 执行命令创建vmi
kubectl create -f win10-c-sysprep.yamlvmi running 状态后,连接vnc界面,进行安装(此unattend.xml 有些不对,需要人工选择语言)
virtctl vnc w10-cwin10-c-ok.yamlapiVersion: v1 kind: ConfigMap metadata: name: win10-ok-configmap data: autounattend.xml: |- unattend.xml: |-setup.ps1: |- date >> C:UsersAdministratorDesktoptmp.txt #after install nfs client, uncomment next 1 line #$r = (cmd /c mount \192.88.1.190data s:) --- metadata: name: w10-c apiVersion: kubevirt.io/v1alpha3 kind: VirtualMachineInstance spec: domain: clock: timezone: "Asia/Shanghai" utc: {} timer: {} cpu: sockets: 4 cores: 1 threads: 1 features: acpi: {} apic: {} hyperv: relaxed: {} vapic: {} vpindex: {} spinlocks: spinlocks: 8191 resources: requests: memory: 4096M cpu: 4 devices: blockMultiQueue: true inputs: - type: tablet bus: usb #bus: virtio name: tablet1 disks: - name: rootdisk bootOrder: 1 disk: bus: virtio - name: containerdisk bootOrder: 2 cdrom: bus: sata - name: virtiocontainerdisk bootOrder: 3 cdrom: bus: sata - name: sysprep bootOrder: 4 cdrom: bus: sata interfaces: - name: default model: e1000 masquerade: {} networks: - name: default pod: {} volumes: - name: containerdisk containerDisk: image: win10:20h2 - name: rootdisk hostDisk: capacity: 30Gi path: /data/vm/win1001/disk.img type: DiskOrCreate - name: virtiocontainerdisk containerDisk: image: kubevirt/virtio-container-disk:v0.37.0 - name: sysprep sysprep: configMap: name: win10-ok-configmap true true true true Work true true 3 123456 true true Administrator 123456 true Kuebvirt Kubevirt Eastern Standard Time powershell -ExecutionPolicy Bypass -NoExit -WindowStyle Hidden -NoProfile f:setup.ps1 false 1 Customize script powershell -ExecutionPolicy Bypass -NoExit -WindowStyle Hidden -NoProfile f:setup.ps1 false 1 Customize script 按照 win10-c-sysprep.yaml 安装好windows 10 后,再使用此配置重新配置 *** 作系统,此会自动登录,并且执行登录后的启动脚本。
注意:
(1)第一次用此yaml安装,要配置系统,较慢。以后启动很快。
(2)上面的登录后启动脚本,mount nfs服务,需要在启动系统,打开windows10 nfs客户端功能后,再放开注释欢迎分享,转载请注明来源:内存溢出
评论列表(0条)