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

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


OpenStack 的 instance 是经过 Glance 镜像部署的,因此准备镜像是必需要作的工做。本节介绍 Linux 镜像的制做方法,后面还会讨论 Windows 镜像。centos

下载clould 镜像

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

安全

CentOS6:http://cloud.centos.org/centos/6/p_w_picpaths/网络


CentOS7:http://cloud.centos.org/centos/7/p_w_picpaths/ssh


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


Ubuntu16.04:http://cloud-p_w_picpaths.ubuntu.com/xenial/current/工具


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

建立Glance镜像

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



点击“建立镜像”按钮。rest

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


  1. 镜像名称为“Ubuntu 16.04”


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


  3. 点击“选择文件”定位Ubuntu 16.04的Cloud p_w_picpath文件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 p_w_picpath都是用 cloudinit 初始化instance,好比配置网络,extend 系统盘等,cloudinit 全部的配置都写在/etc/cloud/cloud.cfg,下面的配置将容许 root 经过password  ssh 登陆。



至此,centos6-vm已经能够启动图形界面,而且能够用密码经过ssh登陆了。


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


cloudint 会用到这个软件管理磁盘分区,由于 CentOS6 cloud p_w_picpath 中没有安装,因此这里须要手工安装。下载地址: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 转化为 p_w_picpath(可选)

Glance镜像有两类:p_w_picpath和snapshot,前面经过对instance作快照建立的镜像类型为 snapshot,有时候可能会以为不太方便,能够将snapshot转化为p_w_picpath。



以 CentOS 6.7n为例,能够直接glance p_w_picpath-create命令经过将其转化为p_w_picpath类型。步骤以下:


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



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


3. 执行glance p_w_picpath-create建立新的镜像。

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



4. 新建立的镜像类型为p_w_picpath。



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


相关文章
相关标签/搜索