这是 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 镜像的制作方法。

转载于:https://www.cnblogs.com/CloudMan6/p/6397360.html

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

  1. 学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)

    作为 OpenStack 的核心教程,我们已经到了最后总结的部分. OpenStack 目前已经有好几十个模块,本教程讨论的是最最重要的核心模块:Keystone,Nova,Glance,Cinder ...

  2. 搭建 OpenStack 实验环境 - 每天5分钟玩转 OpenStack(16)

    2019独角兽企业重金招聘Python工程师标准>>> 在学习 OpenStack 各服务之前,让我们先搭建起一个实验环境. 毋庸置疑,一个看得到摸得着而且允许我们随便折腾的 Ope ...

  3. LVM 类型的 Storage Pool - 每天5分钟玩转 OpenStack(8)

    http://www.cnblogs.com/CloudMan6/p/5277927.html LVM 类型的 Storage Pool - 每天5分钟玩转 OpenStack(8) LVM 类型的 ...

  4. 部署 DevStack - 每天5分钟玩转 OpenStack(17)

    http://www.cnblogs.com/CloudMan6/p/5357273.html 部署 DevStack - 每天5分钟玩转 OpenStack(17) 本节按照以下步骤部署 DevSt ...

  5. 每天5分钟玩转openstack跟学(一)预备知识

    前言:对于openstack我是一名小白,打算跟着CloudMan的<每天5分钟玩转openstack>进行学习,有兴趣的小伙伴可以跟着我一起,相互探讨,互相进步,该系列博文基本不涉及原理 ...

  6. 如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22)

    http://www.cnblogs.com/CloudMan6/p/5402490.html 如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22) 本节首先讨论 p_ ...

  7. Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34)

    Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34) 本节通过日志详细分析 Nova Pause/Resume 操作. 有时需要短时间暂停 instan ...

  8. Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)

    Cinder 组件详解 - 每天5分钟玩转 OpenStack(47) 本节我们将详细讲解 Cinder 的各个子服务. cinder-api cinder-api 是整个 Cinder 组件的门户, ...

  9. 写在最前面 - 每天5分钟玩转 OpenStack(1)

    写在最前面 <每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节 ...

最新文章

  1. 海思3559A上编译FFmpeg源码操作步骤
  2. SD--订单最小量限制的增强
  3. SAP Spartacus里,点击checkbox右边的span文本,不会触发checkbox勾选的原因
  4. 吊炸天的 Kafka 图形化工具 Eagle,必须推荐给你!
  5. 博物馆奇妙夜java_博物馆奇妙夜 2 Night At The Museum
  6. 小小智慧树机器人_中国工厂番外篇丨AGV机器人演绎智能“搬运工”
  7. android volley post 参数,带有标题和正文的Android Volley POST请求
  8. UnityShader13:渐变与遮罩
  9. win98装python_Windows 上的 Python安装
  10. c语言实现万年历程序
  11. Android即时智能聊天软件
  12. 【office相关】excel 中使用 switch函数
  13. Qt调试错误:The inferior stopped because it received a signal from the Operating System.SIGSEGV
  14. 解决VBA运行时错误13 类型不匹配问题
  15. Windows/Linux内核地址空间管理的异同
  16. kettle优化之提高MySQL读写速度
  17. 模拟法螺旋遍历矩阵:54.螺旋矩阵(Kotlin)
  18. PHP数组内容制作分页功能
  19. python人工智能入门书籍推荐-了解、学习人工智能必看的十本书
  20. 文件上传upload-labs第四关

热门文章

  1. 不同地图坐标系的坐标转换
  2. CTFshow php特性 web109
  3. 【hdu 1573 X问题】【 hdu3579 Hello Kiki 】【poj 2891】
  4. SDUT_2122 数据结构实验之链表七:单链表中重复元素的删除
  5. [YTU]_2718 (求最高同学位置)
  6. [YTU]_2008( 简单编码)
  7. Simulink仿真 第四节 总线及示波器模块
  8. 合并a[0..mid]和a[mid+1,n-1],其中这两个数组分别有序
  9. HoughLines 函数
  10. zlggui菜单12864_lcddrive.h