OpenStack--创建一个Centos7的镜像

当我在搭建好OpenStack的环境后,迫不及待的想创建利用它来创建一个自己常用的虚拟机来实验,我自己干的很蠢的事情,就是在开源的网站上下了镜像直接传到OpenStack,然后发现不能用,蠢不蠢啊.这里把我在做镜像的过程分享一下.在创建镜像的时候,需要用到KVM的一些知识,需要了解的可以自己百度,我自己之前也在别的博客里写了一篇KVM的安装使用过程,这里分享一下:
http://www.cnblogs.com/marvin-ma/p/7407509.html

在管理节点创建一个虚拟机镜像

1. 安装virt-install,qemu-kvm, libvirt,并启动libvrit
[root@Marvin-Node1 ~]# yum install -y qemu-kvm libvirt
[root@Marvin-Node1 ~]# yum install -y virt-install
[root@Marvin-Node1 ~]# systemctl start libvirtd && systemctl enable libvirtd
[root@Marvin-Node1 ~]# ifconfig  
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.56 netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::250:56ff:fe91:df22  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:91:df:22  txqueuelen 1000  (Ethernet)
        RX packets 6449007  bytes 8443638629 (7.8 GiB)
        RX errors 0  dropped 508  overruns 0  frame 0
        TX packets 3246349  bytes 274871849 (262.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 4957466  bytes 1360755790 (1.2 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4957466  bytes 1360755790 (1.2 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:cc:71:8c  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

这里如果没有问题,使用ifconfig命令,可以看到多出一个virbr0的网卡

2. 创建一个目录,用于存放镜像,并上传CentOS7的镜像到该目录下

创建目录/opt/image

[root@Marvin-Node1 ~]# mkdir -p /opt/image

可以通过xftp等软件来上传镜像,上传完成后开始创建虚拟机

3.创建虚拟机

3.1 创建一个10G的虚拟机硬盘

[root@Marvin-Node1 ~]# qemu-img create -f qcow2 /tmp/centos.qcow2 10G

3.2 创建虚拟机

[root@Marvin-Node1 ~]# virt-install --virt-type kvm --name centos --ram 1024 \
>   --disk /tmp/centos.qcow2,format=qcow2 \
>   --network network=default \
>   --graphics vnc,listen=0.0.0.0 --noautoconsole \
>   --os-type=linux --os-variant=centos7.0 \
>   --location=/opt/image/CentOS-7-x86_64-Everything-1511.iso
Starting install...
Retrieving file .treeinfo...                                                            | 1.1 kB  00:00:00     
Retrieving file vmlinuz...                                                              | 4.9 MB  00:00:00     
Retrieving file initrd.img...                                                           |  37 MB  00:00:00     
Creating domain...                                                                      |    0 B  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

通过VNC工具连接到管理界面进行系统安装

Paste_Image.png

时区选择上海

安装-时区选择.png

选择支持中文

安装-支持中文.png

分区,将所有容量都给根分区,且只分一个根分区

安装-分区1.png
安装-分区2.png

完成安装,设置root密码

安装-root密码.png

安装完成后点击reboot,系统会关机,并不会重启,这时候在宿主机上可以通过命令查看刚才已经建立的虚拟机

[root@Marvin-Node1 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos                         shut off
 启动虚拟机
 [root@Marvin-Node1 ~]# virsh start centos
Domain centos started

启动后再次通过VNC工具连接上去,进行IP配置,系统优化,安装常用软件,配置yum源等工作,ip的如果不需要IPv6,只要留下以下4行就行

IP配置.png
新建的虚拟机上操作:
        编辑网络
        vi /etc/sysconfig/network-scripts/ifcfg-eth0 
        按照图IP配置来修改
        修改完成后重启network
        systemctl restart network 
        测试外网是否联通,ping 百度等网站测试
        安装常用软件
        yum install vim lrzsz net-tools ntp tree wget -y
        关闭防火墙,关闭selinux
        sed -i 's@=enforcing@=disabled@' /etc/sysconfig/selinux
        systemctl stop firewalld && systemctl disable firewalld
        配置yum源
        [root@localhost ~]# rpm -Uvh http://mirrors.zju.edu.cn/epel/7Server/x86_64/e/epel-release-7-10.noarch.rpm
        [root@localhost ~]# yum install yum-plugin-fastestmirror -y 
设置完成后关闭虚拟机
4. 在OpenStack的管理节点创建虚拟机镜像
[root@Marvin-Node1 ~]# source admin-openstack.sh
[root@Marvin-Node1 ~]# openstack image create "centos7-x86_64"    --file /tmp/centos.qcow2    --disk-format qcow2 --container-format bare    --public
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | ec4343723602ab6df95ffeecee3d96ac                     |
| container_format | bare                                                 |
| created_at       | 2017-09-11T17:19:01Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/66d34783-d85c-479f-ad89-9fbdc3da38f7/file |
| id               | 66d34783-d85c-479f-ad89-9fbdc3da38f7                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | centos7-x86_64                                       |
| owner            | 22cd7c4eb794462a94ef4907971effb9                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 1243676672                                           |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2017-09-11T17:19:08Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+
[root@Marvin-Node1 ~]# cd /var/lib/glance/images/
[root@Marvin-Node1 images]# ll -h
total 1.2G
-rw-r----- 1 glance glance 1.2G Sep 12 01:19 66d34783-d85c-479f-ad89-9fbdc3da38f7   ## 这个1.2G的就是创建的镜像
-rw-r----- 1 glance glance  13M Sep  9 01:31 91355df9-dd45-45d6-9b95-67b61aedafbd
[root@Marvin-Node1 images]# 
5. 在web界面创建一台centos7的虚拟机

5.1 使用admin登录到web界面

web-admin登陆.png

5.2 创建云主机类型

创建云主机类型1.png
创建云主机类型2.png

创建完成后注销登录,使用demo用户登录到web

web登录1.png

5.3 创建centos7的云主机

创建虚拟机1.png
创建虚拟机2-选择源.png
创建虚拟机类型3-选择虚拟机类型.png
创建虚拟机4-选择网络.png

创建完成后在这里就可以看到虚拟机了

Paste_Image.png

点击右边的管理栏,打开控制台

Paste_Image.png

看到控制台后就可以使用前面root帐号的密码登录了

Paste_Image.png

注意: 登录后修改主机名及IP,避免生产中重复,另外可以直接在创建镜像的时候,写一个脚本,在新建云主机完成后,直接更改主机名和IP地址.
另外,后面几张图不是当前环境的IP,是自己用来测试的另外一套环境截的图.
笔者QQ: 779734791 昵称: Marvin 欢迎大家一起讨论.

推荐阅读更多精彩内容