制作要导入的自定义镜像前,建议您使用镜像规范检测工具,自动检测Linux操作系统设置是否符合导入条件。本文通过操作示例、参数和输出项详细为您介绍如何使用镜像规范检测工具。

背景信息

ECS支持使用自定义镜像创建实例。该自定义镜像可以是基于您的线下服务器、虚拟机或者其他云平台的云主机创建的镜像,您需要先将镜像导入ECS,才可使用其创建实例。导入阿里云的自定义镜像需满足一定要求,详情请参见导入镜像必读

为缩短镜像制作周期,我们推荐您使用ECS镜像规范检测工具(下文简称检测工具)。检测工具能基于Linux服务器环境自动检测各项配置指标、快速定位不合规配置、生成TXT和JSON格式检测报告并给出解决意见,省去您逐项检查系统的时间,方便您快速修复系统配置并制作出符合规范的镜像。

目前检测工具仅支持检测Linux类型镜像,包括Ubuntu、CentOS、Debian、RedHat、SLES(SUSE Linux Enterprise Server)、OpenSUSE、FreeBSD、CoreOS和其它Linux发行版本。

本文以CentOS 7.4 64位操作系统为例,介绍检测工具的操作步骤。

操作步骤

完成以下操作,使用检测工具:

  1. 登录您的服务器、虚拟机或者其他云平台的云主机。
  2. 运行以下命令下载检测工具到当前目录。
    wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/73848/cn_zh/1557459863884/image_check

    您也可以单击此处下载检测工具。

  3. 使用root权限运行检测工具,避免检测工具无法读取已设置访问权限的配置文件。
    chmod +x image_check
    sudo <检测工具所在路径>/image_check –p [目标路径]
    本示例中, <检测工具所在路径>为当前目录,生成报告的目标路径为当前目录,因此运行检测工具的命令为:
    sudo ./image_check
    说明 您可使用 -p [目标路径]指定检测报告的生成路径,若不指定则报告默认输出在检测工具所在的路径。
  4. 等待检测工具检测系统配置。
    Begin check your system......
    The report is generating.
    ---------------------------------------
    The infomation you need to input when you import your image to Alibaba Cloud website:
    Current system: CentOS
    Architecture: x86_64
    System disk size: 42 GB
    ---------------------------------------
    Check driver                                               [  OK  ]
    Check shadow file authority                                [  OK  ]
    Check security                                             [  OK  ]
    Check qemu-ga                                              [  OK  ]
    Check network                                              [  OK  ]
    Check ssh                                                  [  OK  ]
    Check firewall                                             [  OK  ]
    Check filesystem                                           [  OK  ]
    Check device id                                            [  OK  ]
    Check root account                                         [  OK  ]
    Check password                                             [  OK  ]
    Check partition table                                      [  OK  ]
    Check lib                                                  [  OK  ]
    Check disk size                                            [  OK  ]
    Check disk use rate                                        [  OK  ]
    Check inode use rate                                       [  OK  ]
    ---------------------------------------
    16 items are OK.
    0 items are failed.
    0 items are warning.
    ---------------------------------------
    The report is generated: /root/image_check_report_2019-05-10_13-28-21.txt
    Please read the report to check the details.
  5. 查看检测报告。
    检测工具运行结果中,会显示检测报告所在路径。本示例中,检测报告所在路径为 /root。检测报告格式为 image_check_report_日期_时间.txtimage_check_report.json

检测项

为避免您制作的自定义镜像创建出功能不全的ECS实例,检测工具主要检查服务器中以下配置项。

检测项 不合规后果 合规建议
driver 无法正常启动ECS实例 安装虚拟化驱动,请参见安装virtio驱动
/etc/shadow 无法修改密码文件,进而无法根据自定义镜像创建ECS实例 不要使用chattr命令锁定/etc/shadow文件
SElinux 无法正常启动ECS实例 不要通过修改/etc/selinux/config开启SELinux
qemu-ga ECS所需要的部分服务不可用,实例功能不全 卸载qemu-ga
network ECS实例网络功能不稳定 关闭或删除Network Manager,并打开 network服务
ssh 无法从控制台远程连接ECS实例 打开SSH服务,不要设置PermitRootLogin
firewall 系统无法自动配置您的ECS实例环境 关闭防火墙Iptables、Firewalld、IPFILTER(IPF)、 IPFIREWALL(IPFW)或PacketFilter(PF)
file system 无法扩容磁盘
  • 推荐使用xfs、ext3、ext4文件系统
  • 容许使用ext2、ufs、udf文件系统
  • ext4文件系统不要使用64 bit特性(feature)
    说明 64 bit是ext4文件系统的特性之一。您可使用 man ext4命令查看其详细说明。
device id 无法正常启动ECS实例 清理fstab文件,去除文件中不需要的device id,保证使用的device id都在blkid命令的显示结果中
root 无法使用用户名和密码远程连接ECS 实例 保留root账号
passwd ECS实例无法新增用户 保留passwd命令,或重新安装passwd
分区表 无法正常启动ECS实例 采用MBR分区
/lib 无法自动化配置ECS实例 /lib/lib64的指向位置不能为绝对路径,修改链接文件/lib/lib64的指向位置为相对路径
system disk N/A 增加系统盘容量,系统盘空间最佳为40 GiB至500 GiB。并在导入镜像时根据镜像的虚拟文件大小而非使用容量配置系统盘容量
disk usage 无法为ECS实例安装必要的驱动或服务 保持足够的磁盘空间
inode usage 无法为ECS实例安装必要的驱动或服务 保持足够的inode资源

检测工具会根据检测项给出OKFAILED或者WARNING检测结果。

  • OK:检测项均符合要求。
  • FAILED:检测项不符合要求,使用该自定义镜像创建的ECS实例无法正常启动。建议您修复报错项后再制作镜像,以提高实例启动效率。
  • WARNING:检测项不符合要求,使用该自定义镜像创建的ECS实例可以安全启动,但ECS无法通过有效途径干预您的实例配置。您可以选择立即修复,也可以暂时忽略问题直接制作镜像。

输出项

检测工具运行结束后,会在目标路径输出TXT和JSON两种格式的检测报告。
说明 检测报告的目标路径可使用 -p [目标路径]指定。若不指定,则默认生成到检测工具所在路径。
  • TXT格式报告名称为image_check_report_日期_时间.txt,报告内容包括服务器配置信息以及检测结果。以CentOS 7.4 64位操作系统为例:
    The information you need to input when you import your image to Alibaba Cloud Website:
      Current system is: CentOS     #服务器操作系统
      Architecture: x86_64          #系统架构
      System disk size: 42 GB       #服务器系统盘容量
      -----------------------------------------
       Check driver                 #检测项名称
       Pass: kvm drive is exist     #检测结果
       Alibaba Cloud supports kvm virtualization technology
       We strongly recommend installing kvm driver.
  • JSON格式报告名称为image_check_report.json,报告内容包括服务器配置信息以及检测结果。以CentOS 7.4 64位操作系统为例:
    "platform": "CentOS",      \\服务器操作系统
      "os_big_version": "7",     \\操作系统版本号(高位)
      "os_small_version": "4",   \\操作系统版本号(低位)
      "architecture": "x86_64",  \\系统架构
      "system_disk_size": "42",  \\服务器系统盘容量
      "version": "1.0.2",        \\检测工具版本
      "time": "2018-05-14_19-18-10", \\检测时间
      "check_items": [{
          "name": "driver",      \\检测项名称
          "result": "OK",        \\检测结果
          "error_code": "0",     \\错误码
          "description": "Pass: kvm driver exists.", \\描述
          "comment": "Alibaba Cloud supports kvm virtualization technology. We strongly recommend installing kvm driver."
      }]
    }

后续步骤

查看导入镜像注意事项