完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像

简介:

在部署openstack云平台环境的时候,需要上传镜像到glance。

首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目录下
然后用OZ工具制作openstack的镜像

*******************************安装libvirt虚拟机软件****************************************
[root@openstack-server src]# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install 
[root@openstack-server src]# systemctl enable libvirtd && systemctl start libvirtd 
************************************************************************************

[root@openstack-server src]#yum install -y oz libguestfs-tools

[root@openstack-server src]# pwd
/usr/local/src
[root@openstack-server src]# ll CentOS-6.5-x86_64-bin-DVD1.iso #下载的iso镜像
-rw-r--r--. 1 root root 4467982336 Nov 29 2013 CentOS-6.5-x86_64-bin-DVD1.iso
[root@openstack-server src]# cat CentOS6u5-x86_64.tdl #创建tdl 文件
<template>
<name>CentOS6u5-x86_64</name>
<description>CentOS6u5-x86_64 template</description>
<os>
<name>CentOS-6</name>
<version>5</version>
<arch>x86_64</arch>
<rootpw>PASSWORD</rootpw>             #这个是虚拟机创建好后,root的登陆密码,密码是在这个镜像里定义的!
<install type='iso'>
<iso>file:///usr/local/src/CentOS-6.5-x86_64-bin-DVD1.iso</iso>
</install>
</os>
<commands>                  #centos7系统里没有/boot/grub/grub.conf文件,这块可以不用写,但写了也无妨。这里我是centos7,也写了
<command name='console'>
sed -i 's/ rhgb//g' /boot/grub/grub.conf
sed -i 's/ quiet//g' /boot/grub/grub.conf
sed -i 's/ console=tty0 / serial=tty0 console=ttyS0,115200n8 /g' /boot/grub/grub.conf
</command>
</commands>
</template>


在用OZ工具制作openstack镜像,有报错:
[root@openstack-server src]# oz-install -u -d3 CentOS6u5-x86_64.tdl #报错如下:
..................
raise oz.OzException.OzException("Could not find a libvirt bridge. Please run 'virsh net-start default' to start the default libvirt network, or see http://github.com/clalancette/oz/wiki/Oz-Network-Configuration for more information")
oz.OzException.OzException: Could not find a libvirt bridge. Please run 'virsh net-start default' to start the default libvirt network, or see http://github.com/clalancette/oz/wiki/Oz-Network-Configuration for more information


[root@openstack-server src]# virsh net-start default
error: failed to get network 'default'
error: Network not found: no network with matching name 'default'

查阅资料,说是因为 default 网络不存在
回想了一下,我开始在捣鼓openstack 的时候,可能用命令删除了default,也或许没有启动default网络
因为在不同的环境下,default.xml 的存放路径不同,这里笔者以自己的 centos7 为例

[root@openstack-server src]# find / -name "default.xml"
/etc/libvirt/qemu/networks/autostart/default.xml
/etc/libvirt/qemu/networks/default.xml
/usr/share/backgrounds/default.xml
/usr/share/libvirt/networks/default.xml
[root@openstack-server src]# virsh net-define /usr/share/libvirt/networks/default.xml
Network default defined from /usr/share/libvirt/networks/default.xml

[root@openstack-server src]# virsh net-start default
Network default started

[root@openstack-server src]# virsh net-list
Name State Autostart Persistent
----------------------------------------------------------
default active no yes

[root@openstack-server src]#


然后接着再进行openstack镜像的制作: 
[root@openstack-server src]# oz-install -u -d3 CentOS6u5-x86_64.tdl 
libvirt bridge name is virbr0
Libvirt type is kvm
Name: CentOS6u5-x86_64, UUID: 0a9b1d18-f517-40ae-9de9-1fd6101878e2
MAC: 52:54:00:fb:0b:c9, distro: CentOS-6
update: 5, arch: x86_64, diskimage: /var/lib/libvirt/images/CentOS6u5-x86_64.dsk
nicmodel: virtio, clockoffset: utc
mousetype: ps2, disk_bus: virtio, disk_dev: vda
icicletmp: /var/lib/oz/icicletmp/CentOS6u5-x86_64, listen_port: 36050
Original ISO path: /var/lib/oz/isos/CentOS-65x86_64-iso.iso
Modified ISO cache: /var/lib/oz/isos/CentOS-65x86_64-iso-oz.iso
Output ISO path: /var/lib/libvirt/images/CentOS6u5-x86_64-iso-oz.iso
ISO content path: /var/lib/oz/isocontent/CentOS6u5-x86_64-iso
Checking for guest conflicts with CentOS6u5-x86_64
Generating install media
Attempting to get the lock for /var/lib/oz/isos/CentOS-65x86_64-iso.iso
Got the lock for /var/lib/oz/isos/CentOS-65x86_64-iso.iso
Fetching the original media
Fetching the original install media from file:///usr/local/src/CentOS-6.5-x86_64-bin-DVD1.iso
15kB of 4363264kB
10255kB of 4363264kB
20494kB of 4363264kB
30734kB of 4363264kB
40973kB of 4363264kB
51212kB of 4363264kB
....................
....................
....................
Cleaning up guestfs handle for CentOS6u5-x86_64
Syncing
Unmounting all
Libvirt XML was written to CentOS6u5-x86_64Aug_30_2016-13:47:18


注意:
镜像制作完默认会存放到/var/lib/libvirt/images/ 目录下,可以在/etc/oz/oz.cfg 配置文件中进行修改路径。

[root@openstack-server src]# cd /var/lib/libvirt/images/
[root@openstack-server images]# pwd
/var/lib/libvirt/images
[root@openstack-server images]# ll
total 1087336
-rw-rw-rw-. 1 root root 10737418240 Aug 30 13:47 CentOS6u5-x86_64.dsk
[root@openstack-server images]# virt-sysprep --add CentOS6u5-x86_64.dsk 
[ 0.0] Examining the guest ...
[ 5.0] Performing "abrt-data" ...
...........
[ 5.0] Setting a random seed
[ 5.0] Performing "lvm-uuids" ...

 

查看文件信息
[root@openstack-server images]# qemu-img info CentOS6u5-x86_64.dsk 
image: CentOS6u5-x86_64.dsk
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.0G

上传镜像到 Glance
[root@openstack-server images]# glance image-create --name "CentOS-6.5" --file /var/lib/libvirt/images/CentOS6u5-x86_64.dsk --disk-format qcow2 --container-format bare --visibility public --progress
[=============================>] 100%

+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 2d16e5ef687fead34fa801aafe37f058 |
| container_format | bare |
| created_at | 2016-08-30T06:03:22Z |
| disk_format | qcow2 |
| id | 508db9d4-6c9f-459d-8782-065ee8b6f2c2 |
| min_disk | 0 |
| min_ram | 0 |
| name | CentOS-6.5 |
| owner | 65a0c00638c247a0a274837aa6eb165f |
| protected | False |
| size | 10737418240 |
| status | active |
| tags | [] |
| updated_at | 2016-08-30T06:04:26Z |
| virtual_size | None |
| visibility | public |
+------------------+--------------------------------------+

查看镜像
[root@openstack-server images]# glance image-list
+--------------------------------------+------------+
| ID | Name |
+--------------------------------------+------------+
| 508db9d4-6c9f-459d-8782-065ee8b6f2c2 | CentOS-6.5 |
+--------------------------------------+------------+

 

 

 登陆openstack界面,发现可以查看到上面已经上传到glance里面的镜像。上面使用OZ工具制作的openstack所需要的Centos6/Centos7镜像的默认大小是10G(如下图)

 

 

----------------------------------------------------------------------------------------------------------
注意:

如果不想用OZ工具制作,可以直接下载centos的qcow2格式镜像

下载地址:http://cloud.centos.org/centos 【有centos6/7的镜像】

比如:下载centos7的qcow2格式镜像
#wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2

上传到 galnce
#glance image-create --name "CentOS-7-x86_64" --disk-format qcow2 --container-format bare --file
CentOS-7-x86_64-GenericCloud.qcow2 --visibility public --progress

 

-------------------------------------------------------------------------------------------------------------

当然,也可以使用OZ工具制作openstack需要的qcow2的Centos7镜像
[root@openstack-server src]# pwd
/usr/local/src 
[root@openstack-server src]# ls CentOS-7-x86_64-DVD-1511.iso 
CentOS-7-x86_64-DVD-1511.iso
[root@openstack-server src]# ls CentOS-7-x86_64.tdl 
CentOS-7-x86_64.tdl
[root@openstack-server src]# cat CentOS-7-x86_64.tdl
<template>
<name>CentOS-7-x86_64</name>
<description>CentOS-7-x86_64 template</description>
<os>
<name>CentOS-7</name>
<version>2</version>
<arch>x86_64</arch>
<rootpw>PASSWORD</rootpw> 
<install type='iso'>
<iso>file:///usr/local/src/CentOS-7-x86_64-DVD-1511.iso</iso>
</install>
</os>
<commands> 
<command name='console'>
sed -i 's/ rhgb//g' /boot/grub/grub.conf
sed -i 's/ quiet//g' /boot/grub/grub.conf
sed -i 's/ console=tty0 / serial=tty0 console=ttyS0,115200n8 /g' /boot/grub/grub.conf
</command>
</commands>
</template>

 

[root@openstack-server src]# oz-install -u -d3 CentOS-7-x86_64.tdl

 

后面的步骤跟上面制作Centos6.5版本的操作一样

----------------------------------------------------------------------------------------------------------

下面是centos6.8版本镜像制作的tdl文件模板:
[root@openstack-server src]# pwd
/usr/local/src
[root@openstack-server src]# ls CentOS-6.8-x86_64-bin-DVD1.iso 
CentOS-6.8-x86_64-bin-DVD1.iso

[root@openstack-server src]# cat CentOS6u8-x86_64.tdl 
<template>
<name>CentOS6u8-x86_64</name>
<description>CentOS6u8-x86_64 template</description>
<os>
<name>CentOS-6</name>
<version>8</version>
<arch>x86_64</arch>
<rootpw>PASSWORD</rootpw> 
<install type='iso'>
<iso>file:///usr/local/src/CentOS-6.8-x86_64-bin-DVD1.iso</iso>
</install>
</os>
<commands>
<command name='console'>
sed -i 's/ rhgb//g' /boot/grub/grub.conf
sed -i 's/ quiet//g' /boot/grub/grub.conf
sed -i 's/ console=tty0 / serial=tty0 console=ttyS0,115200n8 /g' /boot/grub/grub.conf
</command>
</commands>
</template>

[root@openstack-server src]# oz-install -u -d3 CentOS6u8-x86_64.tdl

后面的步骤跟上面制作Centos6.5版本的操作一样

------------------------------------------------------------------------------------------------------------

下面说下使用OZ工具制作openstack虚拟化环境下的ubuntu版本镜像的过程记录:

下面以ubuntu12.04版本为例,tdl内容参考OZ在github上的模板样式。
https://github.com/rcbops/oz-image-build/tree/master/templates

[root@openstack-server src]# pwd
/usr/local/src
[root@openstack-server src]# ls ubuntu-12.04-server-amd64.iso 
ubuntu-12.04-server-amd64.iso

下面ubuntu的tdl模板可直接使用~
[root@openstack-server src]# cat ubuntu-12.04_x86_64.tdl 
<template>
<name>ubuntu-12.04_x86_64</name>
<description>Ubuntu 12.04 15GB template</description>
<disk>
<size>15</size>                                                  #镜像大小为15G
</disk>
<os>
<name>Ubuntu</name>
<version>12.04</version>
<arch>x86_64</arch>
<rootpw>ROOT-PW_CHANGE-ME!!!</rootpw>                  #root账号登录密码
<install type='iso'>
<iso>file:///usr/local/src/ubuntu-12.04-server-amd64.iso</iso>
</install>
</os>
<commands>
<command name='console'>
sed -i 's/splash//g' /etc/default/grub
sed -i 's/quiet/console=ttyS0/g' /etc/default/grub
/usr/sbin/update-grub
</command>
<command name='update'>
apt-get update
apt-get -y upgrade
echo "cloud-init cloud-init/datasources string NoCloud, OVF, Ec2" > /tmp/debconf-selections 
/usr/bin/debconf-set-selections /tmp/debconf-selections
rm -f /tmp/debconf-selections
apt-get -y install cloud-init
apt-get clean
/usr/sbin/useradd -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sed -i 's/^user: ubuntu/user: stack/g' /etc/cloud/cloud.cfg
echo -n > /etc/udev/rules.d/70-persistent-net.rules
echo -n > /lib/udev/rules.d/75-persistent-net-generator.rules
</command>
</commands>
</template>


[root@openstack-server src]# oz-install -u -d3 ubuntu-12.04_x86_64.tdl
............
............

Waiting for ubuntu-12.04_x86_64 to finish installing, 1200/1200
Waiting for ubuntu-12.04_x86_64 to finish installing, 1190/1200
Waiting for ubuntu-12.04_x86_64 to finish installing, 1180/1200
Waiting for ubuntu-12.04_x86_64 to finish installing, 1170/1200

............
............
Unmounting all
Libvirt XML was written to ubuntu-12.04_x86_64Oct_31_2016-23:01:36

[root@openstack-server src]# cd /var/lib/oz/isos/
[root@openstack-server isos]# pwd
/var/lib/oz/isos
[root@openstack-server isos]# ls                    #发现oz下已经有了ubuntu12.04镜像 
Ubuntu12.04x86_64-iso.iso

[root@openstack-server src]# cd /var/lib/libvirt/images/
[root@openstack-server images]# ls
ubuntu-12.04_x86_64.dsk
[root@openstack-server images]# virt-sysprep --add ubuntu-12.04_x86_64.dsk 
[ 0.0] Examining the guest ...
...........
[ 5.0] Performing "lvm-uuids" .

[root@openstack-server images]# qemu-img info ubuntu-12.04_x86_64.dsk 
image: ubuntu-12.04_x86_64.dsk
file format: raw
virtual size: 15G (16106127360 bytes)
disk size: 1.3G

[root@openstack-server images]# glance image-create --name "ubuntu-12.04" --file /var/lib/libvirt/images/ubuntu-12.04_x86_64.dsk --disk-format qcow2 --container-format bare --visibility public --progress
[=============================>] 100%
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 15d25f4da354d8fbd5a248fc01894ceb |
| container_format | bare |
| created_at | 2016-10-31T15:25:29Z |
| disk_format | qcow2 |
| id | 042073da-e6cb-4b0b-97dd-1d5ef5be236a |
| min_disk | 0 |
| min_ram | 0 |
| name | ubuntu-12.04 |
| owner | 0cd3632df93d48d6b2c24c67f70e56b8 |
| protected | False |
| size | 64424509440 |
| status | active |
| tags | [] |
| updated_at | 2016-10-31T15:38:09Z |
| virtual_size | None |
| visibility | public |
+------------------+-----------------------------------------+

[root@linux-node2 images]# glance image-list
+--------------------------------------+---------------------+
| ID | Name |
+--------------------------------------+---------------------+
| 042073da-e6cb-4b0b-97dd-1d5ef5be236a | ubuntu-12.04 |
+--------------------------------------+---------------------+

 

登录openstack界面,发现上面上传到openstack的ubuntu12.04镜像已经有了,镜像大小为15G。

 

ubuntu各历史版本镜像下载地址:http://releases.ubuntu.com/

ubuntu版本升级记录,详情参考:http://www.cnblogs.com/kevingrace/p/6084118.html

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************


本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/5821823.html,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
网络协议 Linux 网络安全
微软工程师偷偷在用!这款SSH工具让Windows操控CentOS比Mac还优雅!
远程登录Linux服务器是管理和维护服务器的重要手段,尤其在远程办公、云服务管理等场景中不可或缺。通过工具如XShell,用户可以方便地进行远程管理。SSH协议确保了数据传输的安全性,命令行界面提高了操作效率。配置XShell连接CentOS时,需确保Linux系统开启sshd服务和22端口,并正确设置主机地址、用户名和密码。此外,调整字体和配色方案可优化使用体验,解决中文显示问题。
162 21
微软工程师偷偷在用!这款SSH工具让Windows操控CentOS比Mac还优雅!
|
3月前
|
安全 Linux
CentOS下载ISO镜像的方法
访问CentOS官方网站(https://www.centos.org/download/),在“Downloads”页面找到ISO镜像下载链接,选择所需版本和架构(如x86_64)开始下载。CentOS分为Linux版和Stream版,前者每两年发行一次并提供10年安全维护,后者为滚动更新。旧版本可在Vault(https://vault.centos.org/)下载。建议选择DVD格式镜像,包含完整系统和常用软件。
2287 14
CentOS下载ISO镜像的方法
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
基于星海智算云平台部署 DeepSeek-R1系列 70b 模型全攻略(附平台福利)
本文介绍了如何在星海智算云平台上部署DeepSeek-R1系列70B模型,解决官网访问不畅的问题。通过云端部署,用户可以按需付费,避免本地部署高昂成本(高达两百多万)。文章详细讲解了从实例创建到开始使用DeepSeek的八个步骤,并提供了成本优化技巧和新手注意事项。推荐使用双A100显卡,每小时费用仅13.32元。新用户还可领取福利,享受高性价比服务。立即注册体验:[星海智算云平台](https://gpu.spacehpc.com/user/register?inviteCode=52872508)。
317 2
基于星海智算云平台部署 DeepSeek-R1系列 70b 模型全攻略(附平台福利)
|
2月前
|
运维 监控 数据可视化
Hyper-V的哪些性能?使其成为企业构建云平台和虚拟化环境的首选
Hyper-V凭借高效性、灵活性、高可用性及管理简便性等优势,成为企业构建云平台和虚拟化环境的首选。其微内核架构、硬件辅助虚拟化技术和动态内存管理提升了性能与资源利用率;支持多操作系统和硬件平台,具备故障转移、实时迁移功能,确保业务连续性;提供可视化管理工具和PowerShell脚本自动化,简化管理流程;与Windows Server及Azure无缝集成,降低硬件、运维和能源成本。
|
3月前
|
网络协议 Linux 网络安全
docker centos镜像 npm安装包时报错“npm ERR! code ECONNRESET”
通过上述步骤,您可以有效解决在 Docker 中使用 CentOS 镜像安装 npm 包时遇到的 "npm ERR! code ECONNRESET" 错误。希望这些方法能帮助您顺利进行 npm 包的安装。
279 26
|
4月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
307 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
4月前
|
缓存 Linux
CentOS-6的iso下载地址镜像yum源
通过上述步骤,您可以成功下载CentOS 6的ISO镜像文件,并配置适用于CentOS 6的YUM源。尽管CentOS 6已经停止更新,但使用这些镜像和YUM源配置,可以继续在需要的环境中使用和维护CentOS 6系统。
1529 20
|
7月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
254 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
7月前
|
Cloud Native 持续交付 云计算
云端新纪元:探索云原生技术的奥秘在当今数字化时代,云计算已成为推动企业创新和增长的关键动力。随着云平台的不断成熟,云原生技术应运而生,以其独特的优势引领着一场新的技术革命。本文将深入探讨云原生的核心概念、主要特点以及它如何改变现代软件开发和部署的方式,为您揭开云原生这一神秘面纱。
云原生是一种构建和运行应用程序的方法,充分利用了云平台的弹性、分布式本质以及声明式基础设施。本文将解析云原生的十二要素,微服务架构的优势,以及容器化、持续集成与持续部署(CI/CD)等核心技术的实践应用。通过深入浅出的方式,让读者理解云原生不仅是一种技术,更是一种文化和方法论,它正在重塑软件开发流程,提高资源利用率和应用系统的可扩展性与容错性。
|
8月前
|
Linux pouch 容器
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
关于如何在CentOS 7.6操作系统上安装和使用阿里巴巴开源的Pouch容器管理工具的实战教程。
188 2
CentOS7部署阿里巴巴开源的pouch容器管理工具实战