zoukankan      html  css  js  c++  java
  • 制作 OpenStack Linux 镜像

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


  • 相关阅读:
    eval()一个有意思的PHP函数
    PHP error_reporting() 函数
    网络编程基础--协程--greenlet切换---gevent自动识别 IO ---
    网络编程基础--多线程---concurrent.futures 模块---事件Event---信号量Semaphore---定时器Timer---死锁现象 递归锁----线程队列queue
    rpm -qa 查找文件
    Linux Gvim shell 创建第一个shell脚本
    centos7修改网卡名称为eth0-技术流ken
    pxe+kickstart自动化批量安装系统详解-技术流ken
    cobbler单台服务器实现批量自动化安装不同版本系统-技术流ken
    cobbler批量安装系统使用详解-技术流ken
  • 原文地址:https://www.cnblogs.com/CloudMan6/p/6397360.html
Copyright © 2011-2022 走看看