Centos如何制作Openstack虚拟机镜像

小编给大家分享一下Centos如何制作Openstack虚拟机镜像,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

成都创新互联公司专注骨干网络服务器租用十载,服务更有保障!服务器租用,德阳电信服务器托管 成都服务器租用,成都服务器托管,骨干网络带宽,享受低延迟,高速访问。灵活、实现低成本的共享或公网数据中心高速带宽的专属高性能服务器。

一、创建Centos-7.2的镜像

1、创建img文件

# virsh vol-create-as lv3 Centos7.img 50G --format qcow2

 Vol Centos7.img created

此处选择qcow2格式,创建出来的img会较小,成功配置完成后大概在1.2G左右;如果是raw格式,创建完成img大概在51G左右。

2、创建虚拟机

# virt-install --connect qemu:///system -n Centos7 -r 4096 -f /vg0_lv3/Centos7.img --vnc --vcpus=2 --network bridge=br0 -c /vg0_lv1/openstack-image/CentOS-7-x86_64-Everything-1511.iso

Starting install...

Creating domain...                                                                                                                                                                                                   |    0 B     00:00     

Cannot open display: 

Run 'virt-viewer --help' to see a full list of available command line options

Domain installation still in progress. You can reconnect to 

the console to complete the installation process.

连接vnc,图形化界面安装centos7.2的系统,选择最小化安装,系统安装完再继续以下步骤。

3、给虚拟机临时配上Ip地址并连上外网

4、启动acpid服务

# yum install acpid
# systemctl enable acpid

5、配置cloud-init

# yum install http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-7.noarch.rpm
# yum install cloud-init

修改配置

# vi /etc/cloud/cloud.cfg

users: root

6、禁用 zeroconf 路由

#  echo "NOZEROCONF=yes" >> /etc/sysconfig/network

7、配置 console

删除rhgb quiet 添加 console=tty0console=ttyS0,115200n8 

# vi /etc/default/grub

GRUB_TIMEOUT=5

GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"

GRUB_DEFAULT=saved

GRUB_DISABLE_SUBMENU=true

GRUB_TERMINAL_OUTPUT="console"

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root console=tty0 console=ttyS0,115200n8"

GRUB_DISABLE_RECOVERY="true"

让配置生效

# grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...

Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64

Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img

Found linux image: /boot/vmlinuz-0-rescue-8ad37cd5879289675a6517371665929a

Found initrd image: /boot/initramfs-0-rescue-8ad37cd5879289675a6517371665929a.img

done

8、删除网卡配置信息

删除mac信息和 UUID
 

# cd /etc/sysconfig/network-scripts/

# vi ifcfg-ens3

BOOTPROTO=dhcp

ONBOOT=yes

9、关闭虚拟机

# shutdown -h now

10、上传镜像

# source ~/admin-openrc.sh 

# openstack image create "Centos-7.2-init" \

   --file /data/Centos-7.2-init.img \

   --disk-format qcow2 --container-format bare \

   --public

11、创建云主机,查看日志

Centos如何制作Openstack虚拟机镜像

二、创建Centos-6.6的镜像

注意:

  • 虚拟机创建完成后,在修改配置之前最好先给虚拟机做个快照

  • 在创建centos6.6镜像时,安装cloud-init来获取公钥可能会导致无法连接进虚拟机的情况,所以,最好省去第5步。

1、创建img文件

# virsh vol-create-as lv3 Centos6.6.img 50G --format qcow2

2、创建虚拟机

# virt-install --connect qemu:///system -n Centos6.6 -r 4096 -f Centos6.6.img --vnc --vcpus=2 --network bridge=br0 -c /vg0_lv1/CentOS-6.6-x86_64-bin-DVD1.iso

Starting install...

Creating domain...                                                                                                                                                                                                   |    0 B     00:00     

Cannot open display: 

Run 'virt-viewer --help' to see a full list of available command line options

Domain installation still in progress. You can reconnect to 

the console to complete the installation process.

连接vnc,图形化界面安装centos6.6的系统,系统安装完再继续以下步骤。

3、给虚拟机临时配上Ip地址并连上外网

4、安装 ACPI 服务

为了让虚拟化层能重启和关闭虚拟机,必须在虚拟机内安装并运行 acpid 服务。

在 CentOS虚拟机内运行以下命令安装 ACPI 服务并配置为系统启动时自动启动。

# yum install acpid 
# chkconfig acpid on

5、使用 cloud-init 获取公钥

安装完cloud-init可能会导致无法连接进虚拟机的情况,所以,此步骤最好不做,有待继续学习研究……

cloud-init 包自动从元数据服务获取公钥并保存到账户,你可以在 CentOS虚拟机添加 EPEL 安装源来安装 cloud-init 包,我发现其他自带的yum源就可以安装了,并不一定要安装epel源。

# yum install http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install cloud-init
修改配置,添加root用户
# vi /etc/cloud/cloud.cfg
users: root

6、禁用 zeroconf 路由

要让虚拟机访问元数据服务,必须禁用 zeroconf 路由:

# echo "NOZEROCONF=yes" >> /etc/sysconfig/network

7、配置 console

要使 nova console-log 命令在 CentOS 6.x 生效 ,你需要添加以下文字到 /boot/grub/menu.lst 文件:

在kernel最后面加上 console=tty0 console=ttyS0,115200n8
# vi /boot/grub/menu.lst

8、清理mac地址信息,最后的网卡配置信息如下

# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

删除记录网卡MAC地址的文件

# cd /etc/udev/rules.d/
# rm -f 70-persistent-net.rules

9、关闭虚拟机

# shutdown -h now

10、上传镜像

# source ~/admin-openrc.sh 
# openstack image create "Centos-6.6-init-cloud" \
    --file /data/Centos-6.6-init-cloud.img \
    --disk-format qcow2 --container-format bare \
    --public

11、创建云主机,检查日志

Centos如何制作Openstack虚拟机镜像

以上是“Centos如何制作Openstack虚拟机镜像”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


网站标题:Centos如何制作Openstack虚拟机镜像
本文路径:http://csdahua.cn/article/iepceo.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流