OpenStack(五)——进阶篇之虚拟机镜像封装与云主机发布实践

文章目录

封装虚拟机镜像

新建虚拟机

前面步骤与之前安装区别不大

区别在于名称自定义、内核选择1核1G、硬盘内存选择5G并将虚拟磁盘存储为单个文件、放入Centos7镜像、如下图手动分区时选择标准分区

然后添加根分区

点完成后会出现下图,选择Accept Changes

配置虚拟机

为新建的虚拟机配置国内源

bash 复制代码
#删除原有的国外源
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# rm -f .
[root@localhost ~]# ls

#直接拷贝
[root@block1 ~]# cd /etc/yum.repos.d/
[root@block1 yum.repos.d]# ls
CentOS-Base.repo  openstack.repo
[root@block1 yum.repos.d]# scp CentOS-Base.repo root@192.168.117.161:/etc/yum.repos.d/

#查看
[root@localhost yum.repos.d]# ls
CentOS-Base.repo

安装常用软件包

bash 复制代码
[root@localhost ~]# yum install -y vim bash-completion chrony

修改网卡名、禁用selinux

bash 复制代码
[root@localhost ~]# vim /boot/grub2/grub.cfg
        linux16 /vmlinuz-3.10.0-1160.119.1.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 net.ifnames=0
        
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
[root@localhost ~]# reboot	#重启生效

关闭NetworkManager服务

bash 复制代码
[root@localhost ~]# systemctl disable --now NetworkManager
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# mv ifcfg-ens32 ifcfg-eth0
[root@localhost network-scripts]# vim ifcfg-eth0
TYPE=Ethernet
BOOTPROTO="dhcp"
DEVICE="eth0"
ONBOOT=yes
[root@localhost network-scripts]# systemctl restart network

配置时间同步

bash 复制代码
[root@localhost ~]# vim /etc/chrony.conf
server ntp.aliyun.com iburst

关闭防火墙

bash 复制代码
[root@localhost ~]# systemctl disable --now firewalld.service

装acpid并设置开机自启

bash 复制代码
[root@localhost ~]# yum install -y acpid
[root@localhost ~]# systemctl enable acpid

装cloud-init

bash 复制代码
[root@localhost ~]# yum install -y cloud-init

装cloud-utils-growpart

bash 复制代码
[root@localhost ~]# yum install -y cloud-utils-growpart

修改引导文件(只修改其中一行,且要加上net.ifnames=0,否则刷新后会被覆盖),重新生成grub配置

bash 复制代码
[root@localhost ~]# vim /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames=0 console=tty0 console=ttyS0,115200n8"
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

清理缓存

bash 复制代码
[root@localhost ~]# yum clean all

删除自动生成的锁文件

bash 复制代码
[root@localhost ~]# cd /etc/ssh/
[root@localhost ssh]# rm -f ssh_host_*
[root@localhost ssh]# ls
moduli ssh_config sshd_config

关机

bash 复制代码
[root@localhost ~]# poweroff

封装虚拟机

导出虚拟机镜像

选择一个新建立的文件夹,后缀为.ova

打开一台Rocky9.6的虚拟机,将我们的demo.ova文件拖入

安装需要用到的软件包

bash 复制代码
[root@server2 ~]# yum install -y guestfs-tools virt-v2v

开始封装镜像

bash 复制代码
[root@server2 ~]# mkdir /opt/v2v
[root@server2 ~]# virt-v2v -i ova demo.ova -o local -of qcow2 -os /opt/v2v/

压缩镜像文件

bash 复制代码
[root@server2 v2v]# cd /opt/v2v/
[root@server2 v2v]# virt-sparsify --compress /opt/v2v/demo-sda  /opt/v2v/demo-sda-compress.qcow2
[root@server2 v2v]# du -h demo-sda-compress.qcow2
653M    demo-sda-compress.qcow2

将压缩的文件拉出来到与demo.ova同一路径

使用镜像文件

用admin用户登录openstack图形界面,创建镜像,选择我们封装的镜像,注意格式

创建云主机类型,后面用新创建的类型

创建云主机的源选择centos7

查看拓扑

为其添加浮动IP

连接云硬盘

查看,可以格式化,但最好不要分区,否则后续扩容时会比较麻烦

bash 复制代码
[root@controller ~]# ssh centos@192.168.117.105
$ mkdir /data
$ mount /dev/vdb /data
$ cp /etc/ .
$ cd
$ umount /data

分离云硬盘

相关推荐
知已难寻15 小时前
01 · OpenStack的认证管理 Keystone
运维·服务器·云原生·云计算·openstack
青峰讲运维19 小时前
OpenStack Heat 编排:用模板一键交付云业务,告别手动点页面
开发语言·php·openstack
青峰讲运维2 天前
OpenStack 存储深度解析|Cinder 块存储 + Swift 对象存储原理与完整实操(Yoga)
开发语言·openstack·swift
知已难寻2 天前
00 · OpenStack 总纲——从云计算到 OpenStack 全景
运维·服务器·云原生·云计算·负载均衡·openstack·perl
Z21-X2 天前
云原生运维笔记:硬核拆解OpenStack计算与存储——从主机聚合到Cinder挂载全流程
运维·笔记·学习·云原生·openstack
青峰讲运维3 天前
OpenStack Nova 计算服务深度解析|原理 + 架构 + 完整实操
架构·openstack
Linux界最忧郁之人3 天前
OpenStack Victoria双节点实战|Packstack一键部署(CentOS‑Stream‑8)+华为云ECS实操
linux·运维·服务器·centos·华为云·openstack
运维踩坑日记4 天前
OpenStack 核心服务实战笔记
linux·运维·服务器·笔记·openstack
螺蛳粉 螺蛳粉12 天前
OpenStack 部署记录(八):多节点部署执行、验证与排障(完结篇)
openstack·私有云·linux运维·nova·故障排查·packstack·多节点部署
I肆逸I13 天前
OpenStack 管理:从认证、计算到存储与网络
网络·php·openstack