美文网首页
OpenStack CentOS7镜像制作

OpenStack CentOS7镜像制作

作者: 追阳_41 | 来源:发表于2017-08-31 20:56 被阅读0次

    下载CentOS ISO镜像文件

    CentOS mirrors 找到合适的站点下载 CentOS-7-x86_64-DVD-1611.iso ,这里我选择网易镜像进行下载:

    # wget http://mirrors.163.com/centos/7.3.1611/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso
    

    开始安装过程

    安装过程可以使用 virt-manager 或者 virt-install 命令,如果用 virt-install

    # qemu-img create -f qcow2 /tmp/CentOS-7-x86_64-v1.qcow2 10G
    # virt-install --virt-type kvm --name centos7 --ram 1024 \
      --disk /tmp/CentOS-7-x86_64-v1.qcow2,format=qcow2 \
      --network=bridge:br0 \
      --graphics vnc,listen=0.0.0.0 --noautoconsole \
      --os-type=linux --os-variant=centos7.0 \
      --location=/storage/isos/CentOS-7-x86_64-DVD-1611.iso
    

    通过 --network=bridge:br0 指定网络类型和接口。

    逐步安装

    根据提示,逐步安装。

    安装界面

    配置网络信息,确保能正确访问互联网,软件选择最小化安装。

    配置界面

    接着设置root 管理员密码,普通用户这里不用创建,最后等待安装完成并重启系统。

    执行virsh dumpxml matching-name 可查看对应信息:

    # virsh dumpxml centos7
    <domain type='kvm'>
      <name>centos7</name>
    ...
        <disk type='file' device='cdrom'>
          <driver name='qemu' type='raw'/>
          <target dev='hda' bus='ide'/>
          <readonly/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
    ...
    </domain>
    

    在主机运行virsh命令弹出磁盘,再重启host。

    # virsh attach-disk --type cdrom --mode readonly centos7 "" hda
    Disk attached successfully
    # virsh reboot centos7
    Domain centos7 is being rebooted
    

    安装ACPI服务

    以root身份登录guest主机,安装并设置开机启用acpid服务:

    # yum install acpid
    # systemctl enable acpid
    

    配置元数据

    一般在实例创建最后一步时,必须要获取到用户的公钥信息,还有用户的数据和脚本,如何获取到? 此时就需要guest host 安装cloud-init程序包来获取这些信息:

    # yum install cloud-init
    

    在基于CentOS的虚拟机上,公钥信息会被存放在centos帐号下,也就是可以使用centos作为用户名,通过密钥远程登录。通过编辑/etc/cloud/cloud.cfg文件可以使用其他的用户帐号名称。

    安装cloud-utils-growpart 以允许调整分区大小

    # yum install cloud-utils-growpart
    

    禁用zeroconf 路由

    对于访问元数据服务的实例,必须禁用默认的zeroconf路由:

    # echo "NOZEROCONF=yes" >> /etc/sysconfig/network
    

    另外,还需要手动修改下网卡的配置文件:

    # cat /etc/sysconfig/network-scripts/ifcfg-eth0 
    DEVICE="eth0"
    BOOTPROTO="dhcp"
    ONBOOT="yes"
    TYPE="Ethernet"
    NM_CONTROLLED="no"
    

    再自定义设置一些初始化的运行环境。

    配置控制台

    为了让 nova console-log 命令在CentOS 7能正常执行,还需修改一下配置:

    1. 编辑/etc/default/grub ,在GRUB_CMDLINE_LINUX 选项,删除rhgb quiet ,再添加console=tty0 console=ttyS0,115200n8
      例如:

       # cat /etc/default/grub 
       GRUB_TIMEOUT=5
       GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
       GRUB_DEFAULT=saved
       GRUB_DISABLE_SUBMENU=true
       GRUB_TERMINAL_OUTPUT="console"
       GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200n8"
       GRUB_DISABLE_RECOVERY="true"
      
    2. 运行下面命令进行修改保存:

      # grub2-mkconfig -o /boot/grub2/grub.cfg
      

    关闭实例

    在实例内部,以root身份关闭实例:

    # poweroff
    
    保存修改并关机

    清除MAC地址

    在实例运行中,操作系统会将虚拟以太网卡的MAC地址记录在/etc/sysconfig/network-scripts/ifcfg-eth0等位置。但是,每次使用镜像启动新实例时,虚拟以太网卡将会有不同的MAC地址,因此必须从配置文件中删除该信息。
    可以用virt-sysprep 程序,完成各种清理任务,如删除MAC地址引用:

    # virt-sysprep -d centos7
    

    如果没有virt-sysprep 这个命令,需要手动安装:

    # yum install libguestfs-tools
    

    取消定义libvirt域

    # virsh undefine centos7
    Domain centos7 has been undefined
    

    压缩镜像

    # virt-sparsify --compress /tmp/CentOS-7.3-x86_64-Cloud.qcow2 CentOS-7.3-x86_64-Cloud.qcow2
    

    至此,可以将镜像上传至 Image service 使用。

    【参考】:
    https://docs.openstack.org/image-guide/centos-image.html

    相关文章

      网友评论

          本文标题:OpenStack CentOS7镜像制作

          本文链接:https://www.haomeiwen.com/subject/octqjxtx.html