云计算|OpenStack|社区版OpenStack安装部署文档(十三--- 自制镜像---Linux和Windows镜像)

简介: 云计算|OpenStack|社区版OpenStack安装部署文档(十三--- 自制镜像---Linux和Windows镜像)

前言:

接上篇文章

云计算|OpenStack|社区版OpenStack(实务操作---cloud-init的使用)

我们可以使用官方的镜像,通过cloud-init快速的使用openstack,但这样是有问题的,比如,以centos镜像为例,某些时候可能需要高版本的内核,或者其它的一些特殊定制,这个时候使用官方镜像就不太合适了,因为改动比较多,可能会存在使用失败的风险(比如,某个项目需要特别定制的环境)虽然使用cloud-init可能会达成目标,但复杂程度可能会很高。因此,自制镜像还是非常有必要的。

另外,官方并不提供Windows的镜像(Linux的所有版本镜像都是提供的),如果想在openstack中创建Windows系统的kvm虚拟机,无疑,只有自制镜像这一个方法了。

一,

自制openstack可以使用的Linux镜像

网上有非常多得自制Linux版kvm镜像的,没什么好说的,Linux基本都是支持virtio驱动的,在这里就不重复以往的内容了

kvm环境搭建:https://zskjohn.blog.csdn.net/article/details/124658437

kvm安装centos:https://zskjohn.blog.csdn.net/article/details/124656132

只是需要注意几点:1,kvm环境很重要,尽量使用高内核版本那个kvm  2,虚拟网卡br0也是很重要的 3,安装包文件也就是ISO文件尽量从官网下载

4,虚拟机安装完毕后,需要使用libguestfs工具包里的工具压缩节约磁盘空间,方便虚拟机在其它系统内运行。

#######附:--os-variant参数如何设定?找对应的,填写short ID,比如,要安装的是winserver 2021,那就写win2k12

[root@k8s-node2 opt]# osinfo-query os
 Short ID             | Name                                               | Version  | ID                                      
----------------------+----------------------------------------------------+----------+-----------------------------------------
 alpinelinux3.5       | Alpine Linux 3.5                                   | 3.5      | http://alpinelinux.org/alpinelinux/3.5  
 alpinelinux3.6       | Alpine Linux 3.6                                   | 3.6      | http://alpinelinux.org/alpinelinux/3.6  
 alpinelinux3.7       | Alpine Linux 3.7                                   | 3.7      | http://alpinelinux.org/alpinelinux/3.7  
 alpinelinux3.8       | Alpine Linux 3.8                                   | 3.8      | http://alpinelinux.org/alpinelinux/3.8  
 alt.p8               | ALT p8 StarterKits                                 | p8       | http://altlinux.org/alt/p8.starterkits  
 alt.p9               | ALT p9 StarterKits                                 | p9       | http://altlinux.org/alt/p9.starterkits  
 alt.sisyphus         | ALT regular                                        | sisyphus | http://altlinux.org/alt/sisyphus        
 alt8.0               | ALT 8 Education                                    | 8.0      | http://altlinux.org/alt/8.0             
 alt8.1               | ALT 8.1                                            | 8.1      | http://altlinux.org/alt/8.1
####后面的略略略。。。。。。。。。。。。。。。。       
 win2k12              | Microsoft Windows Server 2012                      | 6.3      | http://microsoft.com/win/2k12           
 win2k12r2            | Microsoft Windows Server 2012 R2                   | 6.3      | http://microsoft.com/win/2k12r2         
 win2k16              | Microsoft Windows Server 2016                      | 10.0     | http://microsoft.com/win/2k16           
 win2k19              | Microsoft Windows Server 2019                      | 10.0     | http://microsoft.com/win/2k19           
 win2k3               | Microsoft Windows Server 2003                      | 5.2      | http://microsoft.com/win/2k3            
 win2k3r2             | Microsoft Windows Server 2003 R2                   | 5.2      | http://microsoft.com/win/2k3r2   
####后面的略略略。。。。。。。。。。。。。。。。          

二,

自制openstack可以使用的Windows镜像

window镜像比较麻烦,麻烦点在于一个是磁盘驱动和网卡驱动的选择和安装,另一个是系统的激活问题,比如,win7激活可能需要工具,如何上传工具到虚拟机里?

Windows xp 虚拟机的安装:https://zskjohn.blog.csdn.net/article/details/126357233

Windows 7 旗舰版 虚拟机的安装:kvm安装Windows7旗舰版_晚风_END的博客-CSDN博客_kvm windows

####注:操作系统的安装ISO文件必须是纯净版的,而纯净版的操作系统是没有virtio驱动文件的,因此,可以下载其它云计算爱好者自制的集成了virtio驱动的文件,例如virtio_cn_windows_7_professional_with_sp1_vl_build_x64_dvd_u_677816.iso这样的文件,其内自带virtio驱动

下面以cn_windows_server_2012_r2_vl_x64_dvd_2979220.iso为例,在安装一遍(下载地址:MSDN, 我告诉你 - 做一个安静的工具站):

1,kvm环境

[root@k8s-node2 opt]# virsh -c qemu:///system
Welcome to virsh, the virtualization interactive terminal.
Type:  'help' for help with commands
       'quit' to quit
virsh # version
Compiled against library: libvirt 4.5.0
Using library: libvirt 4.5.0
Using API: QEMU 4.5.0
Running hypervisor: QEMU 1.5.3

2,

系统内核

[root@k8s-node2 opt]# uname -a
Linux k8s-node2 5.4.228-1.el7.elrepo.x86_64 #1 SMP Thu Dec 15 18:03:40 EST 2022 x86_64 x86_64 x86_64 GNU/Linux

3,

网络概况:

[root@k8s-node2 opt]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 1000
    link/ether 00:0c:29:85:c7:73 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::20c:29ff:fe85:c773/64 scope link 
       valid_lft forever preferred_lft forever
3: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:0c:29:85:c7:73 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.13/24 brd 192.168.0.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe85:c773/64 scope link 
       valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:51:64:c3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:51:64:c3 brd ff:ff:ff:ff:ff:ff
8: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:15:7f:11:d9 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

4,

直接执行安装命令:

创建虚拟磁盘

[root@k8s-node2 opt]# qemu-img create -f qcow2 /opt/win2k12r2.qcow2 15G
Formatting '/opt/win2k12r2.qcow2', fmt=qcow2 size=16106127360 encryption=off cluster_size=65536 lazy_refcounts=off 

执行安装(这里是挂载两个光驱,硬盘模式要指定为IDE,如果是virtio将不能认到硬盘):

virt-install --name=win2k12r2 --ram 2048 --vcpus=2 --os-type=windows --os-variant win2k12r2 --disk path=/opt/win2k12r2.qcow2,bus=ide,size=15,format=qcow2  --accelerate --disk device=cdrom,path=/opt/cn_windows_server_2012_r2_vl_x64_dvd_2979220.iso --disk device=cdrom,path=/opt/virtio-win-0.1.102.iso   --vnc --vncport=5955 --vnclisten=0.0.0.0 --network bridge=br0 --force --autostart  --boot cdrom

驱动等待进入这个界面的时候在挂载:

接上面图片,下一步:

选择第四个数据中心安装,如果选择不带gui的,安装完成后将会是黑屏,只有一个cmd窗口:

接受许可:

因为是IDE,所以直接认到了,下一步

把E盘的网卡驱动选择了,隐藏那个√去掉:

等待安装完成:

此时登陆虚拟机,可以看到网卡驱动是virtio了(如果不是virtio,显示的是e1000,那么,需要修改xml文件指定为virtio):

安装完毕后,关闭虚拟机,重新编辑xml配置文件,将两个光驱卸载掉,再次重新启动:

cp /etc/libvirt/qemu/win2k12r2.xml ./

删除的内容:

    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/opt/cn_windows_server_2012_r2_vl_x64_dvd_2979220.iso'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/opt/virtio-win-0.1.102.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>

再次启动虚拟机:

[root@k8s-node2 opt]# virsh create win2k12r2.xml 
Domain win2k12r2 created from win2k12r2.xml

设置密码,就可以使用了

最后一步,压缩镜像:(一般压缩完了的话,可以小一半)

virt-sparsify --compress /opt/win2k12r2.qcow2 newwin2k12r2.img

当然,此镜像没有安装 cloudbase-init 服务,但不影响在私有云上运行

##########附:系统激活

可以有N种方式,不过秘钥激活成功率比较低,KMS工具还是比较可靠

虚拟机安装完毕后,开启远程连接服务,上传KMS工具即可。

密钥 Windows Server 2012 R2(ServerStandard)
安装密钥:
NB4WH-BBBYV-3MPPC-9RCMV-46XCB
产品密钥:
MMPXK-NBJDQ-JPM34-WX3FM-G276W

在openstack上运行此镜像,连接到控制台后,查看网卡信息应该如下:

可以ping通外网(virtio的驱动才可以正确联网,如果是其它的驱动上网会非常困难):

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
存储 Linux 云计算
OpenStack云计算平台搭建
OpenStack 是一个开源的云平台管理项目,通过多个核心组件实现公有云、私有云和混合云的构建与管理。自2010年由NASA和Rackspace联合发起以来,已有众多企业和个人参与开发。OpenStack 简化了云部署流程,支持计算、存储和网络资源的高效管理,并兼容多种虚拟化技术和容器。最新版本为Xena,广泛应用于各行各业,如思科、英特尔等公司。
1384 0
|
安全 Devops 虚拟化
【专栏】虚拟化技术与云计算平台 OpenStack:硬件虚拟化、操作系统级虚拟化和容器化
【4月更文挑战第28天】本文探讨虚拟化技术原理,如硬件虚拟化、操作系统级虚拟化和容器化,以及开源云计算平台OpenStack如何利用这些技术提供优势。OpenStack支持多种虚拟化技术,具备开源灵活性、多租户架构、可扩展性、插件式设计和成本效益。未来,OpenStack将在容器化、DevOps、跨云策略和安全合规性方面发挥更大作用,助力企业数字化转型。
1164 4
|
存储 Linux 网络安全
杨校老师课堂之云计算私有云OpenStack框架快速搭建
杨校老师课堂之云计算私有云OpenStack框架快速搭建
822 0
|
存储 边缘计算 监控
探索未来科技趋势:虚拟化技术与云计算平台OpenStack的概念与实践
在迅猛发展的信息技术时代,企业和组织对于高效、可扩展的计算资源需求日益增长。虚拟化技术和云计算平台OpenStack应运而生,为企业提供了一种灵活、可靠的解决方案。本文将深入探讨虚拟化技术与OpenStack的概念和实践,展示它们在现代科技领域中的重要性和应用前景。
527 3
|
8月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
901 1
二、Linux文本处理与文件操作核心命令
|
8月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
516 137
|
8月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1391 58
|
7月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1266 2

热门文章

最新文章