OpenStack,CentOS6.iso镜像制作qcow2镜像

条件:本文使用的是devstack部署的openstack,制作镜像

一、上传ISO镜像到OpenStack并安装

方法一: 通过OpenStack管理界面

  1. 上传CentOS-6.6-x86_64.iso文件到openstack,上传成功会有提示,请等待...
上传iso镜像
  1. 创建空白卷作为系统安装盘,需等待,创建成功会提示...


    1587023179926.png
    • 登录到ubuntu(安装了openstack)
    cd /home/devstack
    vim local.conf
    修改里面的相关IP为本机br-ex上设定的IP
    
    • 查看创建的卷
    // 获取admin权限
    source openrc admin admin
    // 查看创建的卷
    openstack volume list
    
1587023353920.png
  • 对系统盘的volume使能bootable
// 对系统盘的volume使能bootable
openstack volume set 4139c5b2-cd1c-478a-ba6c-fe62bc192da5 --bootable
  1. 创建实例


    • 创建实例
    • 实例类型


      实例类型
    • 网络


      网络
    • 安全组


      安全组
  2. 挂载空白卷到实例


    挂载空白卷到实例
连接到实例
  1. 安装系统
    安装系统时,不要自动安装,要选择自定义安装,只分一个 / 分区,不要使用LVM管理磁盘,创建实例的时候不会自动扩容,只能手动扩容。所以要删除掉所有分区,然后创建一个分区,挂载 / 分区即可


    安装系统

方法二: 通过命令行实现

  1. 登录到ubuntu(安装了openstack)
cd /home/devstack
vim local.conf
修改里面的相关IP为本机br-ex上设定的IP
  1. 获取admin权限
source openrc admin admin
  1. 上传镜像
openstack image create "CentOS.iso" --file CentOS-6.6-x86_64.iso --disk-format iso --container-format bare --public
  1. 创建实例环境
// 两核, 2G内存, 20G磁盘空间,具体看自己需要
openstack flavor create  --vcpus 2 --ram 2048 --disk 20 flavor.centos6
  1. 创建实例
openstack server create --flavor flavor.centos6 --image CentOS.iso --nic net-id=net-in --security-group default  1
  1. 添加空白的卷作为系统安装盘
openstack volume create --size 10 --bootable 1
  1. 挂载到实例
openstack server add volume 1 1 --device /dev/vda
  1. 安装系统
    安装系统时,不要自动安装,要选择自定义安装,只分一个 / 分区,不要使用LVM管理磁盘,创建实例的时候不会自动扩容,只能手动扩容。所以要删除掉所有分区,然后创建一个分区,挂载 / 分区即可


    安装系统

二、从刚创建的volume系统卷创建实例

  1. 解除刚创建的实例对系统卷的绑定
  2. 删除刚创建的实例
  3. 创建实例
创建实例

三、对系统进行配置

  1. 可以先更换为阿里云(速度会快点)
  2. 安装cloudinit
    2.1. 安装acpid
    yum install -y acpid
    chkconfig --level 2345 acpid on
    
    2.2. 安装qemu-guest-agent
    yum install -y qemu-guest-agent
    
    2.3 设置NOZEROCONF
    echo "NOZEROCONF=yes" >> /etc/sysconfig/network
    
    2.4. 安装cloud-init
    yum install -y cloud-init
    
    2.5 修改cloud init的配置文件
    vim /etc/cloud/cloud.cfg
    // 默认用户root,允许root登录,允许密码访问
    disable_root: 0
    ssh_pwauth:   1
    
    2.6 安装所需软件
    yum install -y epel-release
    // centos6版本镜像内核小于3.8,不支持cloud-init默认分区扩展,需要执行以下操作及注意事项
    //安装dracut-modules-growroot,cloud-utils-growpart解决由于内核版本过低 
        // 修改epel.repo文件
        vim /etc/yum.repos.d/epel.repo
        内容如下:
        // 去掉baseurl的注释(#),将mirrorlist注释掉
        [epel]
       name=Extra Packages for Enterprise Linux 6 - $basearch
       baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
       #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
       failovermethod=priority
       enabled=1
       gpgcheck=1
       gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    
       yum install -y cloud-utils-growpart
       yum install -y dracut-modules-growroot
       dracut -f
    
  3. 删除网络配置
    // 1.删除/etc/udev/rules.d/下的net-70配置文件
     rm /etc/udev/rules.d/70-persistent-net.rules
    
    // 2.修改/etc/sysconfig/network-script
     vim /etc/sysconfig/network-scripts/ifcfg-eth0
        // 内容如下:
        DEVICE=eth0
        TYPE=Ethernet
        ONBOOT=yes
        NM_CONTROLLED=no
        BOOTPROTO=dhcp
    
  4. 配置磁盘自动伸缩
    // 1.创建脚本
     vim /etc/resize_lvm.sh
        // 内容如下:
        growpart /dev/vda 1
        resize2fs /dev/vda1
        if [[ -e "/etc/resize_once" ]]
        then
    
        echo ""
        else
            touch /etc/resize_once
            reboot
        fi
     
     // 给/etc/resize_lvm.sh赋可执行权限
     chmod +x /etc/resize_lvm.sh
     
    // 2.修改/etc/rc.local
     添加如下内容:
     // 开机是执行该脚本
     /etc/resize_lvm.sh
    

二、将系统卷做成image

  1. 删除刚创建的实例
  2. 转换镜像格式qcow2
转换镜像格式qcow2
  1. 下载镜像
    glance image-list
    glance image-download --file /root/Centos6_x86_64.qcow2 <镜像ID>
    
  2. qcow2镜像制作完成

你可能感兴趣的:(OpenStack,CentOS6.iso镜像制作qcow2镜像)