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-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=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=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虚拟机镜像"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!