openstack-Centos -7.7.1908镜像制作

简介

通过 KVM 安装虚 Centos 和 Windwos 2008 R2_x86_64 操作系统步骤并将磁盘文件作为镜像上传到 openstack glance,作为批量创建虚拟机的镜像文件,其中 windowsn 2008 安装 virtio 半虚拟化驱动,以实现网络 IO 和磁盘 IO 的半虚拟化提升速度,Centos 7 默认即支持半虚拟化,不需要安装驱动,Virtio 最初由澳大利亚的一个天才级程序员 Rusty Russell 编写,是一个在 hypervisor 之上的抽象 API 接口,让客户机知道自己运行在虚拟化环境中,从而与 hypervisor 根据 virtio 标准协作,从而在客户机中达到更好的性能(特别是 I/O 性能),目前,有不少虚拟机都采用了 virtio 半虚拟化驱动来提高性能

Centos 7.7.1908-镜像制作

https://docs.openstack.org/image-guide/centos-image.html #centos镜像制作文档

镜像制作前,需要找一台干净的服务器安装KVM,此服务器专门用于制作openstack所需的虚拟机镜像;KVM服务器(虚拟机)需要开启CPU虚拟化功能


##KVM服务器所需要执行的操作
1、yum install -y qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install acpid  
#acpid是对电源进行管理的,让宿主机可以重启虚拟机,即可以通过virsh命令对虚拟机进行重启

2、systemctl start libvirtd acpid

3、systemctl enable libvirtd acpid

4、cd /usr/local/src  #上传ISO镜像

5、qemu-img create -f qcow2 /var/lib/libvirt/images/CentOS-7-x86_64.qcow2 10G  
#创建虚拟机磁盘文件并指定路径,格式为qcow2,qcow2跟使用量动态增长,也可以是 raw 格式(一次性占用宿主机磁盘)

6、创建桥接网络
(1)、vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
(2)、vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
NAME=eth1
DEVICE=eth1
ONBOOT=yes
BRIDGE=br1
(3)、vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=172.31.7.10
GATEWAY=172.31.7.254
PREFIX=21
(4)、vim /etc/sysconfig/network-scripts/ifcfg-br1
TYPE=Bridge
BOOTPROTO=none
NAME=br1
DEVICE=br1
ONBOOT=yes
IPADDR=10.10.7.10
PREFIX=21

7、systemctl restart network

8、virt-install --virt-type kvm --name CentOS7-x86_64 --ram 1024 --cdrom=/usr/local/src/CentOS-7-x86_64-Minimal-1908.iso --disk path=/var/lib/libvirt/images/CentOS7-x86_64.qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
#创建虚拟机(虚拟机磁盘文件在openstack中就是镜像),指定虚拟机类型为KVM、内存大小、ISO镜像位置、磁盘文件位置、网络桥接br0网络、图形使用的是vnc,监听在所有端口

9、virt-manager   #xshell开启xll转发后,可以查看到虚拟机

10、选择虚拟机,安装操作系统(16)
##ansible服务器配置
1、ssh-keygen

2、ssh-copy-id 172.31.0.9  
#将ansible服务器的公钥拷贝到KVM所创建的虚拟机中,用于后期批量部署服务,实现免密要;此步骤需要在下面步骤之间执行,在下面安装完基础命令之后,获取到虚拟机DHCP地址之后,把ansible的公钥拷贝到虚拟机即可


##所创建的虚拟机中执行的操作
1、vi /etc/sysconfig/network-scripts/ifcfg-eth0  #修改网络配置
TYPE=Ethernet
BOOTPROTO=dhcp  #KVM创建的虚拟机不要指定静态IP地址,openstack会自动分配,即使KVM指定了静态地址,但是通过openstack创建完虚拟机后,指定的地址也无法通讯
NAME=eth0        
DEVICE=eth0
ONBOOT=yes

2、systemctl restart network

3、vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root net.ifnames=0 biosdevname=0 rhgb quiet"
#修改网卡名称的内核参数

4、grub2-mkconfig -o /boot/grub2/grub.cfg
#重新生成GRUB配置并更新内核参数

5、reboot     #重启后内核参数生效

6、ifconfig   #查看IP地址后,通过xshell连接过去

7、yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel zip unzip zlib-devel  net-tools lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel bc  systemd-devel bash-completion traceroute -y   #安装系统常用命令

8、systemctl disable firewalld

9、systemctl disable NetworkManager

10、vim /etc/sysconfig/selinux
SELINUX=disabled

11、vim /etc/hostname
openstack.example.linux.local

12、poweroff    #必须将虚拟机关机,保证数据一致性


##KVM服务器所需要做的操作
1、cd /var/lib/libvirt/images/

2、scp CentOS-7-x86_64.qcow2 172.31.7.102:/usr/local/src
#将虚拟机的磁盘文件发送到controller节点上


##controller节点执行的操作
1、cd /usr/local/src/

2、source /root/admin-openrc.sh

3、openstack image create "CentOS-1908-7.7-x86_64-template" --file /usr/local/src/CentOS-7-x86_64.qcow2 --disk-format qcow2 --container-format bare --public
#创建镜像,指定镜像名称、指定虚拟机磁盘文件路径、磁盘格式qcow2、裸磁盘格式、镜像可见性为公有;创建完的镜像会上传到glance

4、openstack image list  #查看镜像是否创建成功

5、dashboard上使用提交的镜像创建虚拟机

6、ansible服务器免密要连接虚拟机,批量部署服务
posted on 2020-07-14 19:16  An.amazing.rookie  阅读(400)  评论(0编辑  收藏  举报