Openstack之九:openstack制作镜像

笑着哭i 提交于 2020-01-08 14:37:49

一、制作镜像介绍

通过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半虚拟化驱动来提高性能。具体过程如下:

二、网络环境准备:

在一台linux服务器上修改网卡配置,做一个br0的网卡桥接,但是不更改也不影响安装虚拟机与制作模板,但是虚拟机要连接外网需要通过桥接或者nat,当虚拟机数量较多的时候nat就会出现瓶颈,所以使用桥接比较稳定:

网卡绑定案例,先做绑定,然后再把绑定后的网卡配置成桥接:

#因镜像虚拟机需要连接外网安装rpm包,需要网络桥接,因此将bondX桥接到brX:

[root@linux-image ~]# hostname
linux-image.exmaple.com
[root@linux-host5 ~]# yum install bridge-utils –y #安装网卡桥接工具

单网卡绑定方法:

eth0的配置:

# cd /etc/sysconfig/network-scripts/
# cp  ifcfg-eth0  ifcfg-br0 
# vim ifcfg-eth0
BOOTPROTO=static 
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0 #删除其他的IP/MAC/网关信息,增加一行桥接的配置
NM_CONTROLLED=no #不使用NetworkManager管理服务

br0的配置:

# vim ifcfg-br0  #编辑桥接网卡配置
TYPE=Bridge  #类型为桥接
BOOTPROTO=static  #静态获取IP
IPV4_FAILURE_FATAL=no
NAME=br0  #网卡名称
DEVICE=br0 #设备名称
ONBOOT=yes
IPADDR=192.168.10.128
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=192.168.10.2

双网卡绑定方法:

1.1:第一组配置,将eth1和eth5绑定为bond0:

1.1.1:先创建bond0配置那文件步骤及内容如下:

[root@linux-host1 ~]# cd /etc/sysconfig/network-scripts/
[root@linux-host1 network-scripts]# cp ifcfg-eth0   ifcfg-bond0
[root@linux-host1 network-scripts]# cat ifcfg-bond0 #内容如下:
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100" #指定绑定类型为1及链路状态监测间隔时间
BRIDGE=br0 #桥接到br0

1.1.2:配置br0:

TYPE=Bridge
BOOTPROTO=static
IPV4_FAILURE_FATAL=no
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=X.X.X.X
NETMASK=255.255.255.0
GATEWAY=X.X.X.X

1.1.3:eth1配置:

[root@linux-host1 network-scripts]# vim ifcfg-eth1
BOOTPROTO=static
NAME=eth1
DEVICE=eth1
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
USERCTL=no
SLAVE=yes

1.1.4:eth5的配置:

[root@linux-host1 network-scripts]# cp ifcfg-eth1  ifcfg-eth5
[root@linux-host1 network-scripts]# vim ifcfg-eth5
BOOTPROTO=static
NAME=eth5
DEVICE=eth5
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
USERCTL=no
SLAVE=yes

1.1.5:重启网络服务:

[root@linux-host1 network-scripts]# systemctl  restart network

三、Windows Server 2008 R2镜像制作:

windows镜像下载官网:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

 

1:安装基础环境:

[root@linux-host1 ~]#  yum install -y qemu-kvm qemu-kvm-tools libvirt virt-manager  virt-install  

2、创建系统磁盘:

[root@linux-image ~]# qemu-img  create -f qcow2  /os/images/Windows-2008-r2-x86_64.qcow2  100G

3、使用命令安装windows 2008:

# virt-install --virt-type kvm  --name  Win_2008_r2-x86_64 --ram 3072  --vcpus=2 --os-type=windows \
--cdrom=/usr/local/src/windows_server_2008_r2.iso --disk path=/var/lib/libvirt/images/Windows-2008_r2-x86_64.qcow2,format=qcow2,bus=virtio \
--disk path=/usr/local/src/virtio-win-0.1.141_amd64.vfd,device=floppy  --network bridge=br0,model=virtio \
--graphics  vnc,listen=0.0.0.0 --noautoconsole

4、用命令进行安装操作

# virt-manager

5、开始加载中:

6、安装界面:

 

 7、开始安装:

8、选择安装版本:

 9、创建分区:

 10、安装过程中:

11、安装完成:

#首次登陆提示必须更改密码:

12、新添加网卡:

#建议先把虚拟机关机再添加网卡

13、验证网络通信:

 14、开启远程连接:

15、关闭防火墙:

16、重新封装虚拟机:

# 系统自带封装工具:

开始封装:

将磁盘镜像scp至openstack控制端:

# openstack image create "windows_server_2008_r2"   --file  Windows-2008-r2-linux36.qcow2   --disk-format qcow2 --container-format bare   --public

在openstack的web界面进行创建镜像,并在openstack安全组打开RDP规则,就可以远程连接windows界面。

四、基于手动安装Centos 7.x 镜像制作:

#做镜像就是在宿主机最小化安装系统并配置优化,做完配置之后将虚拟机关机,然后将虚拟机磁盘文件上传至glance即可启动虚拟机。

也可以在centos官网下载制作好的镜像:http://cloud.centos.org/centos/7/images/

1:安装基础环境:

[root@linux-host1 ~]#  yum install -y qemu-kvm qemu-kvm-tools libvirt virt-manager  virt-install

2、创建磁盘:

类型为qcow2,跟使用量动态增长,也可以是raw格式,openstack 支持很多类型的磁盘格式。

[root@linux-image ~]# qemu-img create -f qcow2  /var/lib/libvirt/images/CentOS-7-x86_64.qcow2  10G 

3、验证磁盘文件:

[root@linux-image ~]# file /var/lib/libvirt/images/CentOS-7-x86_64.qcow2
/var/lib/libvirt/images/CentOS-7-x86_64.qcow2: QEMU QCOW Image (v3), 10737418240 bytes
[root@linux-image ~]# ll -h /var/lib/libvirt/images/CentOS-7-x86_64.qcow2
-rw-r--r-- 1 root root 193K Sep 28 09:21 /var/lib/libvirt/images/CentOS-7-x86_64.qcow2

4、下载ISO镜像并安装:

[root@linux-image ~]# virt-install  --virt-type kvm --name  CentOS7-x86_64   --ram 1024 --cdrom=/opt/CentOS-7-x86_64-Minimal-1511.iso   \  --disk path=/var/lib/libvirt/images/CentOS7-x86_64.qcow2  \
 --network bridge=br0  --graphics  vnc,listen=0.0.0.0  --noautoconsole

5、验证端口:

 

6、使用VNC 客户端连接虚拟机端口:

 

7、连接后状态如下:

8、传递内核参数重命名网卡:

 

 9、磁盘分区

  

10、安装过程

 

 11、添加一个网卡:

虚拟机安装完成系统重启之后给虚拟机新添加一块网卡,最终实现镜像虚拟机有两块网卡以实现内外双网通信。

12、打开控制台:

[root@linux-image images]# virt-manager

 

 进入虚拟机控制界面:

 点击添加硬件:

 

添加网卡:

 

 最终状态:

更改yum源:

1、安装下载软件

[root@bogon ~]# yum install wget –y

2、配置yum 源

[root@bogon ~]# cd /etc/yum.repos.d/
[root@bogon yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@bogon yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

3、安装常用命令

[root@bogon yum.repos.d]# yum install -y net-tools vim lrzsz tree screen lsof ntpdate telnet acpid

4、关闭防火墙及selinux

[root@bogon yum.repos.d]# systemctl  disable NetworkManager
[root@bogon yum.repos.d]# systemctl  disable firewalld
[root@bogon yum.repos.d]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'  /etc/selinux/config

五、官方GenericCloud 7.2.X镜像制作

# 镜像下载地址:http://cloud.centos.org/centos/7/images/

 下载官方镜像

[root@linux-image iso]# wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1511.qcow2.xz
[root@linux-image iso]# xz -d  CentOS-7-x86_64-GenericCloud-1511.qcow2.xz
[root@linux-image iso]# mv CentOS-7-x86_64-GenericCloud-1511.qcow2  /var/lib/libvirt/images/ 

 安装修改密码工具:

[root@linux-image iso]# yum install libguestfs-tools  -y

使用命令开始安装镜像:

 virt-install  --virt-type kvm --name  CentOS-GenericCloud  --ram 1024  \
 --cdrom=/usr/local/src/CentOS-7-x86_64-Minimal-1511.iso \
 --disk path=/var/lib/libvirt/images/CentOS-7-x86_64-GenericCloud-1905.qcow2 \
 --network bridge=br0  --graphics  vnc,listen=0.0.0.0  --noautoconsole  \

控制台打开控制端

# virt-manager

强制关机:

修改密码:

 # virt-customize -a /var/lib/libvirt/images/CentOS-7-x86_64-GenericCloud-1905.qcow2  --root-password password:123456

修改完密码后启动虚拟机

# virt-manager

使用root远程ssh登录,默认ssh服务没有打开密码登陆,需要打开  

# vim  /etc/ssh/sshd_config
PasswordAuthentication yes  #打开密码登陆

重启sshd服务

# systemctl  restart  sshd

此时就可以ssh远程登录root用户

关闭防护墙和selinux:

[root@localhost ~]# systemctl  disable firewalld
[root@localhost ~]# vim /etc/selinux/config
SELINUX=disabled
[root@localhost ~]#systemctl stop NetworkManager
[root@localhost ~]#systemctl disable NetworkManager

 安装常用命令

# 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

将启动服务关闭,避免开机启动慢

# systemctl disable cloud-init

修改文件,将不需要的文件注释掉

# vim /etc/cloud/cloud.conf

打开宿主机控制台  

进入详情界面:

 

点击添加硬件:

 

添加网卡:

 

创建免秘钥登录:

1、在控制端创建公钥

[root@computer-1 ~]# ssh-gen
-bash: ssh-gen: command not found
[root@computer-1 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vPOCUyQ9Xhf4bxx60G9SxULOjdhrPsY2f+o6USSdm/o root@computer-1
The key's randomart image is:
+---[RSA 2048]----+
|           . o.o |
|          . o==oo|
|       .   ..==+o|
|      ..+ . + *..|
|       +So . Bo+ |
|        o.  ++* o|
|       oo    =Bo |
|      o .o  .oE+.|
|       . .. .+o.o|
+----[SHA256]-----+

2、将控制端的公钥复制到制作镜像的系统中

ssh-copy-id 192.168.7.100  #IP地址为制作镜像后获取的IP地址

将制作好的镜像关机,然后将制作好的centos镜像传到openstack上

# openstack image create "centos7.2"   --file CentOS-7-x86_64-GenericCloud-1905.qcow2  \
--disk-format qcow2 --container-format bare --public

创建Cenots 虚拟机:

定义名称:

 

 

 选择镜像源:

 

 

 选择类型:

 

虚拟机创建过程中:

创建完成:

验证虚拟机可以访问外网:

磁盘使用情况:

从镜像创建windows 2008云主机:

创建云主机:

选择镜像源:

选择类型:

调度中:

创建中:

创建完成,验证是否激活:

验证外网连接:

磁盘使用情况:

 



 

 

  

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!