OpenStack镜像管理3

第三部分 OpenStack镜像管理

一、简介

很多源都有为OpenStack已经编译好的各种镜像了,您可以直接下载并通过使用这些镜像来熟悉OpenStack。

不过如果是为生产环境进行部署的话,您一定需要构建含有定制软件或配置的镜像文件。不要着急,本章将引领您完成几种较为流行的Linux发行版镜像,最后也将制作一份Windows的镜像。

由不同的Linux发行版制作镜像时,过程几乎一样,仅有微小的差别而已。由于含有cloud-ini软件包,人们用Ubuntu系统制作镜像文件变得非常容易。Cloud-init软件在实例运行时能够自动维护实例配置,也将为无密码登陆完成密匙导入以及完成设置主机名等任务。每个实例都将通过169.254.169.254的元数据接口,从nova运算中读取特定的配置。

如果您制作发行版不含有诸如cloud-init此类的软件包,您就需要自行完成密匙导入等操作了。说来也简单,只需向rc.local文件中添加相关命令即可。

如前所述,创建Linux不同发行版的过程除了几细微之处外,其余完全一致。不同点将在后文阐述。

本文所有的例子,都是在KVM基础上完成的。正像前两章说道的那样,现在我正在使用client1。

接下来的操作将制作很多镜像,这些镜像代表一个没有分区的硬盘。

二、创建Linux镜像

第一部,首先是在Client1上创建一块空镜像,这块镜像用作虚拟机的硬盘,所以请保证留出你所需的空间的大小:

kvm-img create -f qcow2 server.img 5G

(一)安装准备

下载你所需的Linux发行版iso原镜像文件,比如您想安装Ubuntu,您可以使用wget或浏览器从网站“http://releases.ubuntu.com”获得iso文件。

将下载的iso文件置入虚拟机的CD-ROM后,启动KVM一个虚拟机实例。您将看到安装过程的开始。键入如下命令,它将在端口0开放VNC服务:

sudo kvm -m 256 -cdrom ubuntu-12.04-server-amd64.iso -drive file=server.img,if=virtio,index=0 -boot d -net nic -net user -nographic -vnc :0

使用0这个展示端口连入虚拟机的VNC,并完成安装。

举例如下,client1的IP地址是10.10.10.4,则通过下列命令访问vnc:

vncviewer 10.10.10.4 :0

注意,在制作Linux镜像过程中,请创建一个单独的ext4格式分区并将其挂在swap分区下。

安装结束后,通过执行下列命令重新载入虚拟机:

sudo kvm -m 256 -drive file=server.img,if=virtio,index=0 -boot c -net nic -net user -nographic -vnc :0

此时,您可以在这个系统上安装定制的软件包,进行系统更新,添加用户或更改配置了。

(二)Ubuntu

执行以下命令:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install openssh-server cloud-init

清除 /etc/udev/rules.d文件的网络设备命名规则,因为这些规则将从实例的网卡获得。

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules

(三)Fedfora

运行如下命令:

yum update

yum install openssh-server

chkconfig sshd on

然后编辑 /etc/sysconfig/network-scripts/ifcfg-eth0文件如下所示:

DEVICE="eth0"

BOOTPROTO=dhcp

NM_CONTROLLED="yes"

ONBOOT="yes"

清除 /etc/udev/rules.d文件的网络设备命名规则,因为这些规则将从实例的网卡获得。

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules

关闭虚拟机。

由于Fedora没有cloud-init或类似软件,您需要亲自进行几步配置使实例可以得到诸如ssh key这样的元数据。

编辑 /etc/rc.local文件并且把以下内容粘贴到“touch /var/lock/subsys/local”行前:

depmod -a

modprobe acpiphp

# simple attempt to get the user ssh key using the meta-data service

mkdir -p /root/.ssh

echo >> /root/.ssh/authorized_keys

curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key| grep ‘ssh-rsa‘ >> /root/.ssh/authorized_keys

echo "AUTHORIZED_KEYS:"

echo "************************"

cat /root/.ssh/authorized_keys

echo "************************"

(四)OpenSUSE

选择ssh服务,curl以及其他需要的包。

安装ssh服务器:

zypper install openssh

安装crul:

zypper install curl

使用如下步骤将Ssh Key注入实例中:

首先,创建文件 /etc/init.d/sshkey并且写入下列内容:

echo >> /root/.ssh/authorized_keys

curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key | grep ‘ssh-rsa‘ >> /root/.ssh/authorized_keys

echo "AUTHORIZED_KEYS:"

echo "************************"

cat /root/.ssh/authorized_keys

echo "************************"

然后,为该文件设置权限:

chmod 755 /etc/init.d/sshkey

将sshkey服务设置为开机自动启动:

chkconfig sshkey on

使用下列命令设置防火墙(而非iptables),令其允许ssh服务:

yast2

最后同样地,清除 /etc/udev/rules.d文件的网络设备命名规则,因为这些规则将从实例的网卡获得。

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules

(五)Debian

安装时选择SSH服务器,Curl及相关软件。

然后进行必要的设置,为key注入而编辑 /etc/rc.local文件并增加如下内容:

echo >> /root/.ssh/authorized_keys

curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key | grep ‘ssh-rsa‘ >> /root/.ssh/authorized_keys

echo "AUTHORIZED_KEYS:"

echo "************************"

cat /root/.ssh/authorized_keys

echo "************************"

同样地,清除 /etc/udev/rules.d文件的网络设备命名规则,因为这些规则将从实例的网卡获得。

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules

(六)CentOS6及RHEL6

安装时选择SSH服务器,Curl及相关软件。

然后进行必要的设置,为key注入而编辑 /etc/rc.local文件并增加如下内容:

echo >> /root/.ssh/authorized_keys

curl -m 10 -s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key | grep ‘ssh-rsa‘ >> /root/.ssh/authorized_keys

echo "AUTHORIZED_KEYS:"

echo "************************"

cat /root/.ssh/authorized_keys

echo "************************"

编辑 /etc/sysconfig/network-scripts/ifcfg-eth0文件如下所示:

DEVICE="eth0"

BOOTPROTO=dhcp

NM_CONTROLLED="yes"

ONBOOT="yes"

同样地,清除 /etc/udev/rules.d文件的网络设备命名规则,因为这些规则将从实例的网卡获得。

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules

(七)上传Linux镜像

使用如下命令上传镜像:

glance add name="<Image name>" is_public=true container_format=ovf disk_format=qcow2 < <filename>.img

三、创建Windows镜像

第一步,仍然是在Client1上创建一块空镜像,这块镜像用作虚拟机的硬盘,所以请保证留出你所需的空间的大小:

kvm-img create -f qcow2 windowsserver.img 20G

(一)安装操作系统

当实例运行时,OpenStack利用virtio接口来使用镜像,于是镜像中的操作系统需要装有virtio驱动。不巧的是,默认Windows Server 2008是没有virtio驱动的。您可以在如下网址:http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin 下载装有该驱动的iso镜像并使用该镜像进行安装。

译者注1:Virtio 是半虚拟化 hypervisor 中位于设备之上的抽象层。virtio 由 Rusty Russell 开发,virtio是对半虚拟化 hypervisor 中的一组通用模拟设备的抽象。该设置还允许 hypervisor 导出一组通用的模拟设备,并通过一个通用的应用编程接口(API)让它们变得可用。[来源:开源中国http://www.oschina.net/p/virtio]

译者注2:该链接的virtio-win是0.1-22版,不能用。下载用1.1.16新版即可。

执行此命令开始安装:

sudo kvm -m 1024 -cdrom windows2008.iso -drive file=windowsserver1.img,if=virtio -boot d -drive file=virtio-win-0.1-22.iso,index=3,media=cdrom -device virtio-net-pci -net nic -net user -nographic -vnc :5

当安装提示您选择一块硬盘设备步骤时,您并不能看到当前有可用设备。点击左下方的“载入设备(Load drivers)”按钮,选择第二CDROM后,含有virtio驱动的硬盘便被加载了。

在安装结束之前,您需要重启系统一次,此时您可以安装其它您所需的软件或执行任何需要的配置更改。除此之外,请务必开放实例中的远程桌面,因为远程桌面将是您连接并使用该实例的唯一途径。同时,Windows防火墙应该相应地设置为对ICMP和RDP开放。

(二)上传Windows镜像

关闭虚拟机并将该镜像使用如下命令上传至OpenStack中:

glance add name="windows" is_public=true container_format=ovf disk_format=qcow2 < windowsserver.img

时间: 2024-10-13 16:42:06

OpenStack镜像管理3的相关文章

20、EVE-NG华丽登场Openstack镜像,体验私有云!

文章列表(关注微信公众号EmulatedLab,及时获取文章以及下载链接) 1.EVE-NG介绍(EVE-NG最好用的模拟器,仿真环境时代来临!) 2.EVE-NG安装过程介绍 3.EVE-NG导入Dynamips和IOL 4.EVE-NG导入QEMU镜像 5.EVE-NG关联SecureCRT,VNC,Wireshark 6.EVE-NG网卡桥接,带您走进更高级的实验 7.EVE-NG硬盘扩容,存储海量镜像 8.EVE-NG定制个人镜像,脚本快速导入 9.EVE-NG容纳H3C.Huawei,

OpenStack镜像服务(Image service)的安装部署

OpenStack镜像服务(glance)允许用户发现.注册和恢复虚拟机镜像.Glance提供Rest API可以查询虚拟机镜像的metadata并且可以获取镜像.通过Glance,虚拟机镜像可以被存储到多种存储上,比如简单的文件存储或者对象存储(比如OpenStack中swift项目).一.OpenStack 镜像服务包含组件                                    图1.1. OpenStack glance组件  二.OpenStack 镜像服务安装    下

【N版】openstack——镜像服务glance(四)

[N版]openstack--镜像服务glance 一.openstack之glance镜像服务 1.1glance介绍 glance主要是由三部分组成 glance-api:接收云系统镜像的创建,删除,读取请求,类似nova-api,通过其他模块(glance-registry及image store)来完成诸如镜像的查找.获取.上传.删除等操作,api监听端口9292. glance-registry:云系统的镜像注册服务,用于与mysql数据库交互,存储或获取镜像的元数据(metadata

制作Ubuntu14.04的Openstack镜像

下载好Ubuntu官方镜像安装文件:不要使用desktop版,在virtualbox和vm上都安装报错,因为不需要桌面,所有没去管了. 第一步.准备好如下文件: 1.ubuntu-14.04.4-server-amd64.iso 2.virtual-box 5.0.16 (Vmware也可以,类似安装,创建虚拟机硬盘是选择单一文件可方便转换) 第二步.安装一个虚拟机: 可以使用之前下载的ubuntu-14.04.4-server-amd64.iso安装 进入虚拟机安装qemu-kvm,用来转换v

OpenStack 镜像服务Glance [三]

OpenStack 镜像服务Glance [三] openstack 时间:2016年11月28日 OpenStack镜像服务Glance介绍 创建虚拟机我们需要有glance的支持,因为glance是提供镜像服务 glance有两个比较重要的服务 Glance-api接受云系统镜像的构建.删除.读取请求 Glance-Registry云系统的镜像注册服务 我们需要配置glance-api的配置文件和glance-registry配置文件 glance不需要配置消息队列,但是glance需要配置

云计算PAAS平台测试设计之镜像管理

下面是云计算PAAS平台页面概览: 今天我们要讲的是镜像管理页面的测试设计: 可以看到,这个页面主要有增删改查四个功能. 1. 查询镜像 (1)易用性:查看镜像查询界面,界面上各组件设计合理.美观.易用,文字显示正常,按钮都能正常使用 (2)性能:点击左边栏镜像管理按钮,打开镜像查询界面,页面打开速度在可以接受的范围内,一般是3秒内 (3)功能:在输入框输入想要查询的镜像名称或者部分关键字,点击查询按钮,查询结果显示出匹配到的镜像记录: 在输入框输入不存在的关键字或者超长的关键字,点击查询按钮,

Docker安装及镜像管理

1.docker简介 容器虚拟化,比传统虚拟化轻量 2013年出现,发展非常迅猛 Redhat在6.5版本开始支持docker 使用GO语言开发,基于apache2.0协议 开源软件,项目代码在github维护 2.容器虚拟化和传统虚拟化比较 3.Docker的优势 启动非常快,秒级实现 资源利用率很高,一台机器可以跑上千个docker容器 更快的交付和部署,一次创建和配置后,可以在任意 地方运行 内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率 易迁移,平台依赖性不强

1.3-docker镜像管理

Docker 镜像管理 docker pull centos   //从仓库docker.com获取centos镜像 docker images  //查看本地都有哪些镜像 docker tag centos aming123  //为centos镜像设置标签为aming123,再使用docker images查看会多出来一行,该行的image id和centos的一样.如:docker tag centos centos:wyp123 生成新的镜像,名称和tag变为指定的值. docker s

Docker安装与镜像管理(一)

一.安装docker yum install epel-resase yum install docker-io  (RHEL6) yum install docker (RHEL7) 系统: [[email protected] ~]# uname -a Linux kvm.huangming.org 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux [[email