制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)

这是 OpenStack 实施经验分享系列的第 1 篇。

OpenStack 的 instance 是通过 Glance 镜像部署的,所以准备镜像是必须要做的工作。本节介绍 Linux 镜像的制作方法,后面还会讨论 Windows 镜像。

下载clould 镜像

最简单的方法是使用标准镜像。主流的Linux发行版都提供可以在 OpenStack 中直接使用的cloud镜像,下载地址:
 

CentOS6:http://cloud.centos.org/centos/6/images/

 

CentOS7:http://cloud.centos.org/centos/7/images/

 

Ubuntu14.04:http://cloud-images.ubuntu.com/trusty/current/

 

Ubuntu16.04:http://cloud-images.ubuntu.com/xenial/current/

 

下面以Ubuntu16.04为例演示如何将标准镜像导入 Glance。

创建Glance镜像

登录 OpenStack,打开 “项目->Compute->镜像”菜单。

 

 

点击“创建镜像”按钮。

在创建页面填写镜像相关信息,其中包括:

 

  1. 镜像名称为“Ubuntu 16.04”

     

  2.  “镜像源”选择“镜像文件”

     

  3. 点击“选择文件”定位Ubuntu 16.04的Cloud image文件xenial-server-cloudimg-amd64-disk1.img

     

  4. “镜像格式”选择“QCOW2”

     

  5. 最小磁盘填写“20”,这相当于设置instance启动盘的最小容量

     

  6. 勾选“共有”选择框,这样所有Project都可以使用该镜像

     

点击“创建镜像”按钮,开始上传镜像。完成后,新的镜像将出现在镜像列表上。

 

定制镜像

cloud 镜像是标准镜像,没有图像界面,是美国时区,而且只能通过密钥登录。可以根据需要对该镜像进行定制,其方法是:

 

  1. 通过 cloud 镜像部署出一个实例。

     

  2. 定制该实例。

     

  3. 创建该实例的快照,该快照将保存在Glance中。

     

  4. 以后通过该快照部署新的实例。

     

下面我们以CentOS标准镜像为例演示定制镜像的每个步骤,定制内容包括:添加图形界面,设置中国时区,设置ssh密码登录等。

1. 通过cloud镜像部署出一个实例

进入 “项目->Compute->镜像”菜单,点击镜像“CentOS6”后面的“启动云主机”按钮。

 

 

命名为“centos6-vm”。

 

 

因为cloud镜像默认是通过密钥对访问,点击“访问&安全”标签,选择事先创建好的密钥对“template”。

 

 

点击“运行”, centos6-vm部署成功。

 

 

 在“项目->Compute->访问&安全”菜单中管理密钥对。“template”就是在这里创建的。也支持已有的密钥对。

 

 

在创建密钥时下载并保管好私钥文件template.pem,下面通过此文件登录centos6-vm。

 

ssh -i <key-path>/template.pem centos@172.17.24.97


然后切换到root用户:

sudo su –

 

2. 定制该实例

设置中国时区

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

 

设置yum 源

 

因为要安装图形等相关包,yum源需提前准备好(当然也可以用官网的源)。然后编辑 /etc/yum.repos.d/CentOS-Base.repo 


 

如果是CentOS7,内容如下:

 

 

安装开发工具和图形界面

 

CentOS6安装如下包:

yum groupinstall "Desktop"

yum groupinstall "X Window System"

yum groupinstall "Development tools"

 

CentOS7安装如下包:

yum groupinstall "Server with GUI"

yum groupinstall "GNOME Desktop"

yum groupinstall "Development Tools"

 

设置系统默认启动图形界面

 

CentOS6,编辑 /etc/inittab,

 

 

CentOS7,执行 systemctl set-default graphical.target

 

 

设置 root密码

 

设置root密码默认为“passw0rd”

 

 

允许root 通过密码ssh登录

 

编辑 /etc/ssh/sshd_config,作以下修改。


 

重启ssh服务

 

service sshd restart

 

 

修改 /etc/cloud/cloud.cfg

cloud image都是用 cloudinit 初始化instance,比如配置网络,extend 系统盘等,cloudinit 所有的配置都写在/etc/cloud/cloud.cfg,下面的配置将允许 root 通过password  ssh 登录。

 

 

至此,centos6-vm已经可以启动图形界面,并且可以用密码通过ssh登录了。

 

安装cloud-utils-growpart(CentOS 6 only)


cloudint 会用到这个软件管理磁盘分区,因为 CentOS6 cloud image 中没有安装,所以这里需要手工安装。下载地址:https://pkgs.org/centos-6/epel-x86_64/cloud-utils-growpart-0.27-10.el6.x86_64.rpm/download/

rpm -Uvh cloud-utils-growpart-0.27-10.el6.x86_64.rpm

 

3. 创建新镜像

我们在instance中完成了定制工作,接下来对instance做个快照,生成新的镜像。点击“centos6-vm”后面的“创建快照”按钮。

 

 

为快照命名。

点击“创建快照”。

 

4. 部署新实例

点击“启动云主机”通过快照部署新的实例。

 

点击“运行”,实例部署成功。

 

 

可以看到,该实例已经启动了图形界面,并且root可以通过ssh密码登录。

 

 

将 snapshot 转化为 image(可选)

Glance镜像有两类:image和snapshot,前面通过对instance做快照创建的镜像类型为 snapshot,有时候可能会觉得不太方便,可以将snapshot转化为image。

 

 

以 CentOS 6.7n为例,可以直接glance image-create命令通过将其转化为image类型。步骤如下:

 

1. 在其详细信息里面记录下ID为:228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b

 

 

2. 该镜像默认存放于控制节点 /var/lib/glance/images/228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b。

 

3. 执行glance image-create创建新的镜像。

glance image-create --name "CentOS 6.7" --file 228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b --disk-format qcow2 --container-format bare --is-public true --progress       

 

 

4. 新创建的镜像类型为image。

 

 

以上就是定制 OpenStack Linux 镜像的常规操作,下一节我们讨论 Windows 镜像的制作方法。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NDIS与WinSock关系之自我扫盲

起来真是雷人&#xff0c;最近几天纠结与一个最基本的概念&#xff0c;就是NDIS与WinSock关系&#xff0c;想来想去都没有想明白&#xff0c;真实汗Ing&#xff0c;赶紧找了篇精美的文章来扫盲一下。 原文如下&#xff1a; 文章转自http://www.cnblogs.com/sankye/articles/16…

根据状态转移表实现时序电路

根据状态转移表实现时序电路 某同步时序电路转换表如下&#xff0c;请使用D触发器和必要的逻辑门实现此同步时序电路 电路的接口如下图所示 A表示输入&#xff0c;Y 表示输出 理解状态转移表&#xff0c;画成状态转移图 timescale 1ns/1nsmodule seq_circuit(input …

Devoxx 2017美国大会首日重要演讲一览

Devoxx美国大会今天开幕。\u0026#xD;\n\u0026#xD;\nDevoxx是北美版的欧洲软件大会&#xff08;European Software Conference&#xff09;。广受追捧的欧洲软件大会由Stephan Janssen在2001年创立&#xff0c;组织方是比利时Java用户组&#xff08;BeJUG&#xff0c;Belgian Ja…

Linux-Android启动之Machine-Init函数

Linux/Android启动之Machine-Init函数 前言&#xff1a; 前面写过两篇Linux/Android的启动过程分析&#xff0c;这篇接着前两篇的知识点进行分析。 Linux/Android的启动过程包括了很多内容&#xff0c;其中有些需要了解&#xff0c;有些则需要在系统移植的时候进行修改。本篇文…

边沿检测—以脉冲形式给出信号

边沿检测—以脉冲形式给出信号 题目描述&#xff1a; 有一个缓慢变化的1bit信号a&#xff0c;编写一个程序检测a信号的上升沿给出指示信号rise&#xff0c;当a信号出现下降沿时给出指示信号down。 注&#xff1a;rise,down应为单脉冲信号&#xff0c;在相应边沿出现时的下一个…

贷款秒拒?你可能进了“灰名单”!

灰名单/GRAY LIST今天有客户向我反映&#xff0c;他的征信良好没有半点问题&#xff0c;只有一张信用卡备用&#xff0c;没有一次逾期&#xff0c;但是最近想申请贷款都是被秒拒。他觉得很郁闷&#xff0c;是不是办了假的贷款&#xff1f;他完全不知道被拒的理由&#xff0c;只…

Linux--根文件系统的挂载过程分析

前言&#xff1a; 本篇文章以S3C6410公版的Linux BSP和U-Boot来进行分析&#xff0c;文中所有提及的名词和数据都是以该环境为例&#xff0c;所有的代码流程也是以该环境为例来进行分析。哈哈。如果有不正确或者不完善的地方&#xff0c;欢迎前来拍砖留言或者发邮件到guopeixi…

Troubleshooting OpenStack Bug- 每天5分钟玩转 OpenStack(162)

这是 OpenStack 实施经验分享系列的第 12 篇。 问题描述 客户报告了一个问题&#xff1a;对 instance 执行 migrate 操作&#xff0c;几个小时了一直无法完成&#xff0c;不太正常。 问题分析 遇到这种情况&#xff0c;第一个要检查的就是 instance 所在计算节点的 nova-comput…

ROM简单实现

ROM简单实现 题目描述 实现一个深度为8&#xff0c;位宽为4bit的ROM&#xff0c;数据初始化为0&#xff0c;2&#xff0c;4&#xff0c;6&#xff0c;8&#xff0c;10&#xff0c;12&#xff0c;14。可以通过输入地址addr&#xff0c;输出相应的数据data 接口信号图如下&…

Linux--Sys_Read系统调用过程分析

注&#xff1a; 本片文章以Read函数的调用为例来讲述一下系统对块驱动层的一些处理, 哈哈。如果有不正确或者不完善的地方&#xff0c;欢迎前来拍砖留言或者发邮件到guopeixin126.com进行讨论&#xff0c;先行谢过。 一&#xff0e;Read函数经由的层次模型 首先来了解一下Re…

负债的阶梯,你在第几层?

现在的年轻人成为了消费市场上的中流砥柱&#xff0c;他们为我国的GDP贡献了70%的数据。如今年轻人更愿意刷信用卡、网贷平台借钱消费。尽管在外打拼不容易&#xff0c;但是工作稳定&#xff0c;收入稳定&#xff0c;为了犒劳自己及时享乐&#xff0c;他们选择了背负一点债务。…

Android应用程序开发环境的建立

注&#xff1a; 本片文章简单的描述一下Android应用程序开发环境的建立。如果有不正确或者不完善的地方&#xff0c;欢迎前来拍砖留言或者发邮件到guopeixin126.com进行讨论&#xff0c;先行谢过。 一&#xff0e;准备工作... 2 二&#xff0e;安装步骤... 2 1. 安装JDK5.0.…

你真的会 snapshot 吗? - 每天5分钟玩转 OpenStack(163)

​这是 OpenStack 实施经验分享系列的第 13 篇。 instance snapshot 操作可用于备份或者将 instance 保存为新的 image。如果在生产系统中执行 snapshot 操作&#xff0c;必须确保此操作快速且安全。这里有两个关键点&#xff1a; 快速。 为保证数据的一致性&#xff0c;snaps…

输入序列连续的序列检测

输入序列连续的序列检测 题目描述 请编写一个序列检测模块&#xff0c;检测输入信号a是否满足01110001序列&#xff0c;当信号满足该序列&#xff0c;给出指示信号match。 模块的接口信号图如下&#xff1a; 模块的时序图如下&#xff1a; timescale 1ns/1ns module seque…

哪些信用卡取现0手续费?

经常使用信用卡的朋友都知道&#xff0c;信用卡取现一般是要手续费的&#xff0c;而且取现之后不能享受免息期&#xff0c;这点让人很不爽。有时候我们经常会急用钱&#xff0c;这时候用信用卡取现确实很方便&#xff0c;可以解决燃眉之急&#xff0c;能帮上不少忙&#xff0c;…

如何申请到利息低的贷款?

经常有朋友问我&#xff0c;如何才能申请到利息低的贷款&#xff1f;针对这个问题&#xff0c;很多时候我不能给予一个明确的回答。很多朋友之前可能都没有接触过贷款&#xff0c;所以对贷款本身并不是很了解&#xff0c;更有的朋友以为贷款利息可以像商品一样讨价还价&#xf…

含有无关项的序列检测

含有无关项的序列检测 题目描述 请编写一个序列检测模块&#xff0c;检测输入信号a是否满足011XXX110序列&#xff08;长度为9位数据&#xff0c;前三位是011&#xff0c;后三位是110&#xff0c;中间三位不做要求&#xff09;&#xff0c;当信号满足该序列&#xff0c;给出指…

Metadata Service 最高频的应用 - 每天5分钟玩转 OpenStack(164)

实现 instance 定制化&#xff0c;cloud-init&#xff08;或 cloudbase-init&#xff09;只是故事的一半&#xff0c;metadata service 则是故事的的另一半。两者的分工是&#xff1a;metadata service 为 cloud-init 提供自定义配置数据&#xff0c;cloud-init 完成配置工作。…

如何获取并分析Bluetooth HCI层Command Packet和Event Packet包

首先&#xff0c;如何来确定什么样的包为Command/Event Packet呢&#xff1f; 我们知道&#xff0c;通过HCI Packet包括四种&#xff0c;即Command&#xff0c;Event&#xff0c;ACL和SCO/eSCO&#xff0c;对应到MS-Stack中的定义&#xff0c;即为COMMAND_PACKET &#xff0c;E…

Metadata Service 架构详解 - 每天5分钟玩转 OpenStack(165)

下面是 Metadata Service 的架构图&#xff0c;本节我们详细讨论各个组件以及它们之间的关系。 nova-api-metadata nova-api-metadata 是 nova-api 的一个子服务&#xff0c;它是 metadata 的提供者&#xff0c;instance 可以通过 nova-api-metadata 的 REST API 来获取 metada…