小编给大家分享一下Centos如何制作Openstack虚拟机镜像,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
# virsh vol-create-as lv3 Centos7.img 50G --format qcow2
Vol Centos7.img created
此处选择qcow2格式,创建出来的img会较小,成功配置完成后大概在1.2G左右;如果是raw格式,创建完成img大概在51G左右。
# 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的系统,选择最小化安装,系统安装完再继续以下步骤。
# yum install acpid # systemctl enable acpid
# 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
# echo "NOZEROCONF=yes" >> /etc/sysconfig/network
删除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
# shutdown -h now
# 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、创建云主机,查看日志
注意:
虚拟机创建完成后,在修改配置之前最好先给虚拟机做个快照
在创建centos6.6镜像时,安装cloud-init来获取公钥可能会导致无法连接进虚拟机的情况,所以,最好省去第5步。
# 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的系统,系统安装完再继续以下步骤。
4、安装 ACPI 服务
为了让虚拟化层能重启和关闭虚拟机,必须在虚拟机内安装并运行 acpid
服务。
在 CentOS虚拟机内运行以下命令安装 ACPI 服务并配置为系统启动时自动启动。
# yum install acpid # chkconfig acpid on
安装完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
要让虚拟机访问元数据服务,必须禁用 zeroconf 路由:
# echo "NOZEROCONF=yes" >> /etc/sysconfig/network
要使 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虚拟机镜像”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。