OpenStack云计算快速入门之三:OpenStack镜像管理

摘要:
第三部分OpenStack镜像管理一、简介很多源都有为OpenStack已经编译好的各种镜像了,您可以直接下载并通过使用这些镜像来熟悉OpenStack。安装ssh服务器:zypperinstallopenssh安装crul:zypperinstallcurl使用如下步骤将SshKey注入实例中:首先,创建文件/etc/init.d/sshkey并且写入下列内容:echo˃˃/root/.ssh/authorized_keyscurl-m10-shttp://169.254.169.254/latest/meta-data/public-keys/0/openssh-key|grep'ssh-rsa'˃˃/root/.ssh/authorized_keysecho"AUTHORIZED_KEYS:"echo"************************"cat/root/.ssh/authorized_keysecho"************************"然后,为该文件设置权限:chmod755/etc/init.d/sshkey将sshkey服务设置为开机自动启动:chkconfigsshkeyon使用下列命令设置防火墙,令其允许ssh服务:yast2最后同样地,清除/etc/udev/rules.d文件的网络设备命名规则,因为这些规则将从实例的网卡获得。
第三部分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-imgcreate-fqcow2server.img5G


(一)安装准备

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

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

sudokvm-m256-cdromubuntu-12.04-server-amd64.iso-drivefile=server.img,if=virtio,index=0-bootd-netnic-netuser-nographic-vnc:0

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

举例如下,client1IP地址是10.10.10.4,则通过下列命令访问vnc

vncviewer10.10.10.4:0

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

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

sudokvm-m256-drivefile=server.img,if=virtio,index=0-bootc-netnic-netuser-nographic-vnc:0

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

(二)Ubuntu

执行以下命令:

sudoapt-getupdate

sudoapt-getupgrade

sudoapt-getinstallopenssh-servercloud-init

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

sudorm-rf/etc/udev/rules.d/70-persistent-net.rules


(三)Fefora

运行如下命令:

yumupdate

yuminstallopenssh-server

chkconfigsshdon

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

DEVICE="eth0"

BOOTPROTO=dhcp

NM_CONTROLLED="yes"

ONBOOT="yes"

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

sudorm-rf/etc/udev/rules.d/70-persistent-net.rules

关闭虚拟机。

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

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

depmod-a

modprobeacpiphp

#simpleattempttogettheusersshkeyusingthemeta-dataservice

mkdir-p/root/.ssh

echo>>/root/.ssh/authorized_keys

curl-m10-shttp://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服务器:

zypperinstallopenssh

安装crul

zypperinstallcurl

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

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

echo>>/root/.ssh/authorized_keys

curl-m10-shttp://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"************************"

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

chmod755/etc/init.d/sshkey

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

chkconfigsshkeyon

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

yast2

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

sudorm-rf/etc/udev/rules.d/70-persistent-net.rules


(五)Debian

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

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

echo>>/root/.ssh/authorized_keys

curl-m10-shttp://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文件的网络设备命名规则,因为这些规则将从实例的网卡获得。

sudorm-rf/etc/udev/rules.d/70-persistent-net.rules


(六)CentOS6RHEL6

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

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

echo>>/root/.ssh/authorized_keys

curl-m10-shttp://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文件的网络设备命名规则,因为这些规则将从实例的网卡获得。

sudorm-rf/etc/udev/rules.d/70-persistent-net.rules


(七)上传Linux镜像

使用如下命令上传镜像:

glanceaddname="<Imagename>"is_public=truecontainer_format=ovfdisk_format=qcow2<<filename>.img



三、创建Windows镜像

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

kvm-imgcreate-fqcow2windowsserver.img20G


(一)安装操作系统

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

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

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

执行此命令开始安装:

sudokvm-m1024-cdromwindows2008.iso-drivefile=windowsserver1.img,if=virtio-bootd-drivefile=virtio-win-0.1-22.iso,index=3,media=cdrom-devicevirtio-net-pci-netnic-netuser-nographic-vnc:5

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

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


(二)上传Windows镜像

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

glanceaddname="windows"is_public=truecontainer_format=ovfdisk_format=qcow2<windowsserver.img


免责声明:文章转载自《OpenStack云计算快速入门之三:OpenStack镜像管理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用sqlserver的sqlcmd、osql、isql的备份与还原Linux 安装Nginx具体图解教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#WinformSettings.setting配置

以下是学习笔记: 参考:https://blog.csdn.net/weixin_42451919/article/details/102819404?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.no_search_link&s...

网站打包桌面程序 – Nativefier

网站打包桌面程序 – Nativefier Nativefier简介 Nativefier 是一种命令行工具,可以用最少的配置轻松地为任何网站创建桌面应用程序。它是由 Electron 引擎生成的可执行文件(.app .exe 等),能够运行在Windows,MacOS和Linux平台。 GitHub页面:https://github.com/jiaha...

使用EditThisCookie浏览器插件导出cookie

  1、下载浏览器插件EditThisCookie,下载后为比如:EditThisCookie_v1.6.3.crx      下载路径:https://chrome.zzzmh.cn/info?token=fngmhnnpilhplaeedifhccceomclgfbg   2、无法直接在google浏览器上安装EditThisCookie_v1.6.3...

frp(升级版)教程

注:之前的教程是按照官网文档亲自实践操作汇总而成的,所需的软件也是从官网下载的。 但是有一个问题,若是运行在有公网IP的frps程序被其他人所知道,他们就可以直接在他们电脑上运行frpc客户端, 简而言之就是你的这个程序除了自己使用之外,也被其他人所使用(并不是出自于你的授意)。 所以此教程的目的是在服务端增加一个配置项,只有运行的客户端有这个配置项跟服务...

【Linux】安装虚拟机 VMware Workstation Pro 最新版以及许可证亲测可用

1、准备工具 1.1 VMware Workstation Pro下载地址 VMware Workstation Pro 16.1.0 Build 17198959 VMware Workstation Pro 15.1.0 Build 13591040 VMware Workstation Pro 14.1.3 Build 9474260 VMware...

5款顶尖Windows文件传输工具

5款顶尖Windows文件传输工具 英文原文: Drasko 日常工作中,公司里的系统管理员或其他岗位的员工都需要传递大量各种类型的文件和文档。其中一些可以通过 email 收发。但由于 email 附件有文件大小限制,因此需要使用文件传输工具来传递较大的文件。在这种情况下就需要文件传输工具出场了。本文即将介绍 5 款顶尖高效免费 Windows 文件传输...